代码之家  ›  专栏  ›  技术社区  ›  daniel aagentah

MongoDB-返回X个随机记录数

  •  0
  • daniel aagentah  · 技术社区  · 8 年前

    在我的节点中。js服务器,我试图返回4个随机记录从我的收集。

    这是我当前的代码,问题是当前它从我的集合中返回0-4条随机记录,而我希望每次都返回4条(不多也不少)随机记录。

    db.collection('articles')
    .find()
    .limit( 4 )
    .skip(Math.round(Math.random() * 4))
    .sort("date", -1).toArray()
    

    任何帮助或建议都将不胜感激-提前感谢!

    我看了一些类似的问题,但它们似乎都是 在0-X个记录之间生成随机记录,而不是设定数量。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Neodan    8 年前

    您可以使用 $sample 聚合管道。

    从输入中随机选择指定数量的文档。

    这个 $样本 阶段具有以下语法:

    { $sample: { size: <positive integer> } }

    E、 g.该代码返回4个随机文档:

    db.collection('articles').aggregate([
       { $sample: { size: 4 } }
    ]);
    

    如果需要选择 x 随机文件,然后添加 $match

    推荐文章