美文网首页
MongoDB获取随机记录 aggregate,$sample

MongoDB获取随机记录 aggregate,$sample

作者: 沧海2122537190 | 来源:发表于2019-05-09 09:12 被阅读0次

db.getCollection("table_name").aggregate({ $sample: { size: 条数 }})

类似于sql Select * From table_name Order By RAND() Limit 条数;

其中$sample是aggregate的管道操作符可单独使用,也可同其他操作符联用。

注:结果集合可能会多条相同文档

一、无条件随机查询

eg. 1:在表(xjis)里返回10条文档(注:原表数据量为1,094)

db.getCollection("xjis").aggregate([{ $sample: { size: 10 }}]) 

eg.1

eg. 2:在表(xjpy)里返回80条文档(注:原表数据量大于1,000,000)

db.getCollection("xjpy").aggregate([{ $sample: { size: 80 }}])

eg.2

二、有条件随机查询

添加筛选条件可用管道操作符$match,但$match需在$sample前。

eg. 1:在表(xjis)里返回10条article_year值为2014的文档(注:原表数据量为1,094)

db.getCollection("xjis").aggregate([{ $match:{"article_year":2014}},{ $sample: { size: 10 }}])

eg.1

eg. 2:在表(xjpy)里返回80条article_year值为2014的文档(注:原表数据量大于1,000,000)

db.getCollection("xjpy").aggregate([{ $match:{"article_year":2014}},{ $sample: { size: 80 }}])

eg.2

相关文章

网友评论

      本文标题:MongoDB获取随机记录 aggregate,$sample

      本文链接:https://www.haomeiwen.com/subject/pgsvgqtx.html