MongoDB 随机查询 返回指定个数

用$sample (aggregation)方法,具体命令为:

db.collection.aggregate( [ { $sample: { size: N } } ] ) N为条数

例如返回5条:

> db.test.aggregate( [ { $sample: { size: 5 } } ] )

{ "_id" : ObjectId("5d1c5a7b39ab0f9fbcd647a8"), "id" : 1, "name" : "chenfeng" }

{ "_id" : ObjectId("5d1c733bee9b8d3cbbc26779"), "id" : 89007, "name" : "hello" }

{ "_id" : ObjectId("5d1c7342ee9b8d3cbbc276dc"), "id" : 92946, "name" : "chenfeng" }

{ "_id" : ObjectId("5d1c7240df7032c6c7966207"), "id" : 88223, "name" : "chenfeng" }

{ "_id" : ObjectId("5d1c5b7c39ab0f9fbcd94c62"), "id" : 97819, "name" : "chenfeng" }


返回1条:

> db.test.aggregate( [ { $sample: { size: 1 } } ] )

{ "_id" : ObjectId("5d1c5aec39ab0f9fbcd7b29a"), "id" : 92915, "name" : "chenfeng" }

带条件查询:

myresult1=db.aggregate(collection,[{"$match":{"_id.start_time":{"$gte":vstart_time,"$lte":vend_time},"site_address":vsitec,"_id.imsi":{"$ne":data}}},{"$group":{"_id":{"imsi":"$_id.imsi","site_address":"$site_address"},"count":{"$sum":1}}}])

原文地址:https://www.cnblogs.com/xibuhaohao/p/12185703.html