Ответ 1
Другой способ достижения
db.Colletion.find().limit( 50 ).skip( _rand() * db.Collection.count() )
измените предел() согласно вашему требованию, надеюсь, это поможет....
Спасибо
Я хочу найти много случайных записей, выполняющих только 1 запрос.
Я пробовал:
var count = db.collections.count()
var rand = function(){return Math.floor( Math.random() * count )}
db.collection.find().limit(-1).skip(rand()).next();
Но это возвращает только один документ. Мне нужно получить больше случайных записей.
Как я могу это сделать?
Другой способ достижения
db.Colletion.find().limit( 50 ).skip( _rand() * db.Collection.count() )
измените предел() согласно вашему требованию, надеюсь, это поможет....
Спасибо
Передайте функцию, которая возвращает значение 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? */)