Как найти случайные записи в mongodb

Я хочу найти много случайных записей, выполняющих только 1 запрос.

Я пробовал:

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

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

Но это возвращает только один документ. Мне нужно получить больше случайных записей.

Как я могу это сделать?

Ответ 1

Другой способ достижения

db.Colletion.find().limit( 50 ).skip( _rand() * db.Collection.count() )

измените предел() согласно вашему требованию, надеюсь, это поможет....

Спасибо

Ответ 2

Передайте функцию, которая возвращает значение 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? */)