$push,$each,$sort,$slice,$position 等内嵌数组操作

$push,$each,$sort,$slice,$position

1,各元素解释

$push 向数组中添加元素

$each 循环数据

$sort 对数组进行排序

$slice 对整个collection表进行数据裁减,用的时候一定要当心

$position 插入数据的位置。

2,实例

  1. db.test4.insert(  
  2. {  
  3.  "_id" : 5,  
  4.  "quizzes" : [  
  5.  { wk: 1, "score" : 10 },  
  6.  { wk: 2, "score" : 8 },  
  7.  { wk: 3, "score" : 5 },  
  8.  { wk: 4, "score" : 6 }  
  9.  ]  
  10. }  
  11. );  
  12.   
  13. db.test4.update( { _id: 5 },  
  14.  { $push: { quizzes: { $each: [ { wk: 5, score: 8 },  
  15.                                 { wk: 6, score: 7 },  
  16.                                 { wk: 7, score: 6 } ],  
  17.                        $sort: { score: -1 },  
  18.                        $slice: 3,  
  19.                        $position:2  
  20.                       }  
  21.            }  
  22.  }  
  23.  );  

java代码示范

 				List<Map<String, Object>>lit=new ArrayList<Map<String,Object>>();
				    lit.add(userMap); // 数据要用list包装下,不然会报错
				    
				    DBObject each = new BasicDBObject();
					each.put("$each", lit); // 插入的数据
					each.put("$sort", new BasicDBObject("atime",-1));// 重新排序 -1倒序 1正序
				   // each.put("$position", 0);// 插入位置
					DBObject push = new BasicDBObject();
					push.put("user", each);// 内嵌的数组名字 
					
				    DBObject setField = new BasicDBObject();
				    setField.put("$push", push);
				    
				    // wheremap 是修改条件 
				    mongo.update(setField, collection, wheremap);











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值