如何在mongodb中找到随机记录

时间:2013-12-25 14:13:08

标签: mongodb

我想找到许多只进行1次查询的随机记录。

我试过了:

var count = db.collections.count()
var rand = function(){return Math.floor( Math.random() * count )}

db.collection.find().limit(-1).skip(rand()).next();

但这只返回一个文件。我需要获得更多随机记录。

我该怎么做?

2 个答案:

答案 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? */)