在我的node.js服务器中,我试图从集合中返回4条随机记录。

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

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


任何帮助或建议,我们将不胜感激-预先感谢您!


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

最佳答案

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


  从其输入中随机选择指定数量的文档。
  
  $sample阶段具有以下语法:
  
  { $sample: { size: <positive integer> } }


例如。此代码返回4个随机文档:

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


如果您需要根据某些条件选择x个随机文档,则只需添加$match

关于javascript - MongoDB-返回X随机记录数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47474009/

10-12 12:29
查看更多