条件操作符
$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);