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);
});