MongoDB - не понимаю, как перемещаться по коллекциям с помощью курсора
advertisers = db.dbname.find( 'my query which returns things correctly' );
Теперь я понимаю, что он возвращает курсор в список коллекций.
Но я не уверен, как пропустить их и получить каждую коллекцию.
Я хочу попробовать что-то вроде этого:
advertisers.each(function(err, advertiser) {
console.log(advertiser);
});
Но это не работает. Но я не видел от поиска в Интернете, как заставить его работать с простым JavaScript.
Тогда у меня есть этот код:
var item;
if ( advertisers != null )
{
while(advertisers.hasNext())
{
item = advertisers.next();
}
}
и он дает эту ошибку: SyntaxError: syntax error (shell):1
Помогите оценить!
Спасибо!
Ответы
Ответ 1
Быстрый и грязный способ:
var item;
var items = db.test.find();
while(items.hasNext()) {
item = items.next();
/* Do something with item */
}
Существует также более функциональный:
items.forEach(function(item) {
/* do something */
});
Ответ 2
Еще один способ перебора коллекций - использовать метод курсора toArray:
var results = db.getCollection('posts').find({}).toArray();
for(var i = 0; i <= results.length -1; i++)
{
print("Author is:" + results[i].Author);
}
Ответ 3
Поскольку вы не показываете стек, я предполагаю, что ваша проблема - это параметр, который вы передаете функции find, этот параметр должен быть объектом JavaScript, поэтому:
var query = {
key: 'my query which returns things correctly'
}
advertisers = db.dbname.find(query);
advertisers.each (function(err, doc){
//.... error code not included.....
console.log(doc);
});