我想找到许多只进行1次查询的随机记录。
我试过了:
var count = db.collections.count()
var rand = function(){return Math.floor( Math.random() * count )}
db.collection.find().limit(-1).skip(rand()).next();
但这只返回一个文件。我需要获得更多随机记录。
我该怎么做?
答案 0 :(得分:12)
另一种实现方式
db.Colletion.find().limit( 50 ).skip( _rand() * db.Collection.count() )
根据您的要求更改限制(),希望这会有帮助.... 谢谢
答案 1 :(得分:4)
传递一个在Boolean
参数中返回find
值的函数:
db.collection.find(function () {return Boolean(Math.floor(Math.random() * 2))})
您可以使用count()
查看返回的记录数:
db.collection.find(...).count()
另外,如果您想限制文档cout,请使用limit()
:
db.collection.find(...).limit(/* how many? */)