1. 程式人生 > >Java MongoDB基本操作(查詢、刪除、更新等)

Java MongoDB基本操作(查詢、刪除、更新等)

正在持續更新...

MongoDB中的資料

{
    "_id": ObjectId("57c43caed4c63d7e39b5dc48"),
    "name": "張三",
    "age": 15,
    "arr": [1,2,3],
    "arrObj":[{
        "field1":"value1",
        "field2":"value2"
    }]
}
{
    "_id": ObjectId("67c43caed4c63d7e39b5dc57"),
    "name": "李四",
    "age": 16,
    "arr": [4,5,6]
}

DBCollection的獲取

MongoTemplate template;
DBCollection collection = template.getDb().getCollection("colectionName");

查詢

1.根據ObjectId

BasicDBObject query = new BasicDBObject("_id", new ObjectId("67c43caed4c63d7e39b5dc57"));
collection.find(query);    

2.in查詢

    ArrayList<ObjectId> objectIds = new ArrayList<>();
    objectIds.add(new ObjectId("67c43caed4c63d7e39b5dc57"));
    objectIds.add(new ObjectId("67c43caed4c63d7e39b5dc58"));
    QueryBuilder queryBuilder = QueryBuilder.start("_id").in(objectIds);
    DBCursor dBCursor= collection.find(queryBuilder.get());

3.查詢指定返回欄位

BasicDBObject query = new BasicDBObject("_id", new ObjectId("67c43caed4c63d7e39b5dc57"));
BasicDBObject field = new BasicDBObject("name", true);
collection.find(query, field );    

刪除

1.根據ObjectId刪除

BasicDBObject query = new BasicDBObject("_id", new ObjectId("67c43caed4c63d7e39b5dc57"))
collection.remove(query );

更新

1.整個文件更新

BasicDBObject dbObject = BasicDBObject.parse("{name:'王五'}");
dbObject.put("_id", new ObjectId("67c43caed4c63d7e39b5dc57"));
WriteResult writeResult = collection.save(dbObject);

 2.更新陣列中某一條資料

BasicDBObject query= BasicDBObject.parse("{name:'張三'}");
BasicDBObject update = new BasicDBObject("$set", new BasicDBObject("arrObj.0.field1", "val1"));
WriteResult writeResult = collection.update(query, update);

返回結果的處理

// 執行查詢返回dBCursor
DBCursor dBCursor= collection.find(query);
if(dBCursor.hasNext()){
    DBObject next = dBCursor.next();
    BasicDBObject basicDBObject = (BasicDBObject) next;
    System.out.println(basicDBObject .toJson());
}