mongodb 高级查询 group count 查询

本文介绍了MongoDB中使用的基本查询操作符,如$gt、$lt等,并演示了如何组合这些操作符进行复杂查询,同时还包括排序、计数及分组等功能的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



 



                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值