在我的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/