MongoDB笔记-CRUD(Java连接MongoDB)

package com.zhihua.mongodb.connection;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.bson.types.ObjectId;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;

public class MongoDB_CRUD {

    // 1.建立一个Mongo 的数据库连接对象
    private static Mongo connection = null;
    private static DB db = null;

    @SuppressWarnings("deprecation")
    public MongoDB_CRUD(String dbName) {
        try {
            connection = new Mongo("127.0.0.1:27017");
            db = connection.getDB(dbName);
            // 获取到这个数据库下的所有的集合名称
            //Set<String> collectionNames = db.getCollectionNames();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

        // 实例化
        MongoDB_CRUD mongo = new MongoDB_CRUD("foobar");
        // 1.创建一个名字叫javadb的集合(不能重复创建一个集合)
        //mongo.createCollection("javadb");
        // 2.为集合javadb添加一条数据
//        DBObject dbs = new BasicDBObject();
//        dbs.put("name", "uspcat.com");
//        dbs.put("age", 2);
//        List<String> books = new ArrayList<String>();
//        books.add("extjs");
//        books.add("js");
//        dbs.put("books", books);
//        mongo.insert(dbs, "javadb");

        // 3.批量插入数据
//        List<DBObject> dbObjects = new ArrayList<DBObject>();
//        DBObject jim = new BasicDBObject("name","jin");
//        DBObject lisi = new BasicDBObject("name","lisi");
//        dbObjects.add(lisi);
//        dbObjects.add(jim);
//        mongo.insertBatch(dbObjects, "javadb");

        // 4.根据id删除数据
//        mongo.deleteById("5b46bf31fb4b0e884d688325", "javadb");

        // 5. 根据条件删除数据
//        DBObject jim1 = new BasicDBObject();
//        jim1.put("name", "jin");
//        int count = mongo.deleteByDbs(jim1, "javadb");
//        System.out.println("删除数据的条数是="+count);

        // 6. 更新操作,为集合增加 email属性
//        DBObject update = new BasicDBObject();
//        update.put("$set", new BasicDBObject("eamil","[email protected]"));
//        mongo.update(new BasicDBObject(), update, false, true, "javadb");
//        
        // 7.查询出persions集合中的name和age
//        DBObject keys = new BasicDBObject();
//        keys.put("_id", false);
//        keys.put("name", true);
//        keys.put("age", true);
//        DBCursor cursor = mongo.find(null, keys, "persions");
//        while(cursor.hasNext()){
//            DBObject object = cursor.next();
//            System.out.println(object.get("name"));
//        }

        // 8.查询出年龄大于26岁且英语成绩小于80分
//        DBObject ref = new BasicDBObject();
//        ref.put("age", new BasicDBObject("$gte",26));
//        ref.put("e", new BasicDBObject("$lte",80));
//        DBCursor cursor = mongo.find(ref, null, "persions");
//        while(cursor.hasNext()){
//            DBObject object = cursor.next();
//            System.out.print(object.get("name")+"-->");
//            System.out.print(object.get("age")+"-->");
//            System.out.println(object.get("e"));
//        }

        // 8. 分页例子
        DBCursor cursor = mongo.find(null, null,0,3,"demo");
        while (cursor.hasNext()) {
            DBObject object = cursor.next();
            System.out.print(object);
        }

        //关闭连接对象
        connection.close();
    }

    /**
     * 创建一个数据库集合
     */
    private void createCollection(String collectionName){
        DBObject dbObject = new BasicDBObject();
        db.createCollection(collectionName, dbObject);
    }

    // 为相应的集合添加数据
    private void insert(DBObject dbObject,String collectionName){
        // 得到集合
        DBCollection collection = db.getCollection(collectionName);
        collection.insert(dbObject);
    }

    // 为集合批量插入数据
    private void insertBatch(List<DBObject> dbses,String collectionName){
        // 1.得到集合
        DBCollection collection = db.getCollection(collectionName);
        // 2.插入操作
        collection.insert(dbses);
    }

    // 根据id删除数据
    private int deleteById(String id,String collectionName){
        // 1.得到集合
        DBCollection collection = db.getCollection(collectionName);
        DBObject dbs = new BasicDBObject("_id",new ObjectId(id));
        int count = collection.remove(dbs).getN();
        return count;
    }

    // 根据条件删除数据  @return 返回影响的数据条数
    private int deleteByDbs(DBObject dbs,String collectionName){
        // 1. 得到集合
        DBCollection collection = db.getCollection(collectionName);
        int count = collection.remove(dbs).getN();
        return count;
    }

    /**
     * 更新数据
     * @param find 查询器
     * @param update 更新器
     * @param upsert 更新或插入
     * @param multi 是否批量更新
     * @param collectionName 集合名称
     * @return 返回影响的数据条数
     */
    private int update(DBObject find,DBObject update,
            boolean upsert,boolean multi,String collectionName){
        // 1.得到集合
        DBCollection collection = db.getCollection(collectionName);
        int count = collection.update(find, update,upsert,multi).getN();
        return count;
    }

    // 查询器(分页)
    private DBCursor find(DBObject ref,DBObject keys,
            int start,int limit,String collectionName){
        DBCursor cursor = find(ref, keys, collectionName);
        return cursor.limit(limit).skip(start);
    }

    // 查询器(不分页)
    private DBCursor find(DBObject ref,DBObject keys,String collectionName){
        // 1.得到集合
        DBCollection collection = db.getCollection(collectionName);
        DBCursor cursor = collection.find(ref,keys);
        return cursor;
    }

}

猜你喜欢

转载自blog.csdn.net/hundan_520520/article/details/81012374