条件操作符
$gt : >
$lt : <
$gte: >=
$lte: <=
$ne : !=、<>
$in : in
$nin: not in
$all: all
$not: 反匹配(1.3.3及以上版本)
以下都是引用此集合
DBCollection coll = db.getCollection("employees");
查询 name <> "li" and age >= 18的数据
BasicDBObject query = new BasicDBObject(); query.put("name", new BasicDBObject().append("$ne", "liguohui")); query.put("age", new BasicDBObject().append("$gte", 18)); coll.find(query)
查询 age> 10 and age<= 30的数据
BasicDBObject query = new BasicDBObject(); query.put("age", new BasicDBObject().append("$gt", 10)); query.put("age", new BasicDBObject().append("$lte", 30));
coll.find(query);
查询 age in (20,22,24)的数据
BasicDBObject query = new BasicDBObject(); BasicDBList values = new BasicDBList(); values.add(20); values.add(22); values.add(24); query.put("age", new BasicDBObject("$in", values)); DBCursor cur = coll.find(query);
查询 age取模10等于0的数据
BasicDBObject query = new BasicDBObject(); BasicDBList values = new BasicDBList(); values.add(10); values.add(0); query.put("age", new BasicDBObject("$mod", values)); DBCursor cur = coll.find(query);
查询不匹配name=B*带头的记录
BasicDBObject query = new BasicDBObject(); Pattern p = Pattern.compile("^B.*$"); query.put("name",p); DBCursor cur = coll.find(query);
排序sort()
以年龄升序asc
DBCursor cur = coll.find().sort(new BasicDBObject().append("name", 1));
以年龄降序desc
DBCursor cur = coll.find().sort(new BasicDBObject().append("name", -1));
查询记录条数count()
long count = coll.getCount();
BasicDBObject query = new BasicDBObject(); query.put("age", new BasicDBObject("$lge", 10)); long count = coll.getCount(query);
分组group()
BasicDBObject key = new BasicDBObject(); key.put("name", "true"); BasicDBObject initial = new BasicDBObject(); initial.put("age", 0); BasicDBObject condition = new BasicDBObject(); // condition.put("name", "liguohui"); String reduceString = "function(obj,prev) { prev.age += obj.age; }"; DBObject dbo = coll.group(key, condition , initial, reduceString); System.out.println(dbo);
分组group() and count()
BasicDBObject key = new BasicDBObject(); key.put("name", "true"); BasicDBObject initial = new BasicDBObject(); initial.put("count", 0); BasicDBObject condition = new BasicDBObject(); // condition.put("name", "liguohui"); String reduceString = "function(obj,prev) { prev.count++; }"; DBObject dbo = coll.group(key, condition , initial, reduceString); System.out.println(dbo);