美文网首页
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