前言
MongoDB的java驅動提供了查詢的功能,查詢條件也是bson對象,這篇就看下怎么進行簡單的數據查詢
1、數據結構
集合:firstCollection
數據內容:
{ "_id" : ObjectId("55adba52fa1f3cf038c2aea6"), "name" : "user0", "age" : 22, "sex" : 0 }
{ "_id" : ObjectId("55adba52fa1f3cf038c2aea7"), "name" : "user1", "age" : 23, "sex" : 1 }
{ "_id" : ObjectId("55adba52fa1f3cf038c2aea8"), "name" : "user2", "age" : 24, "sex" : 0 }
{ "_id" : ObjectId("55adba52fa1f3cf038c2aea9"), "name" : "user3", "age" : 25, "sex" : 1 }
{ "_id" : ObjectId("55adba52fa1f3cf038c2aeaa"), "name" : "user4", "age" : 26, "sex" : 0 }
{ "_id" : ObjectId("55adba52fa1f3cf038c2aeab"), "name" : "user5", "age" : 27, "sex" : 1 }
2、連接數據庫,拿到集合firstCollection
MongoClient mClient = new MongoClient("10.211.55.8");
DB db = mClient.getDB("test");
DBCollection collection = db.getCollection("firstCollection");
3、查詢name為user1的對象
查詢條件Json內容:
{"name": "user1"}
查詢條件Java內容:
BasicDBObject queryObject = new BasicDBObject("name","user1");
執行過程:
DBObject obj = collection.findOne(queryObject);
這樣就拿到了name為user1的對象了
4、查詢name包含user的對象
這樣模糊查詢,也就類似於like查詢是通過正則表達式來完成的
查詢條件Json內容:
{“name”:/user/}
查詢條件Java內容:
Pattern queryPattern = Pattern.compile("user", Pattern.CASE_INSENSITIVE);
BasicDBObject queryObject = new BasicDBObject("name",queryPattern);
執行過程:
Pattern queryPattern = Pattern.compile("user", Pattern.CASE_INSENSITIVE);
BasicDBObject queryObject = new BasicDBObject("name",queryPattern);
Cursor cursor = collection.find(queryObject);
while(cursor.hasNext()){
DBObject obj = cursor.next();
System.out.println(obj.toString());
}
5、查詢年齡大於24的對象
查詢條件Json內容:
{"age":{"$gt":24}}
查詢條件Java內容:
兩個Bson對象嵌套
BasicDBObject gt = new BasicDBObject("$gt",24);
BasicDBObject queryObject = new BasicDBObject("age",gt);
執行過程:
BasicDBObject gt = new BasicDBObject("$gt",24);
BasicDBObject queryObject = new BasicDBObject("age",gt);
Cursor cursor = collection.find(queryObject);
while(cursor.hasNext()){
DBObject obj = cursor.next();
System.out.println(obj.toString());
}
備注:
$gt:>
$gte:>=
$eq: =
$ne: !=
$lt: <
$lte: <=
$in: in(后面的值為bson對象數組)
$nin: not in(后面的值為bson對象數組)
這些操作符的用法和$gt類似,不在贅述
總結
通過這篇文章就可以對MongoDB進行簡單的查詢了,但是在具體業務中只有簡單查詢是不現實的,會有更多的與或關系,這戲內容將在下次文章中敘述。