Нахождение размера курсора в MongoDB - PullRequest
0 голосов
/ 03 октября 2011
collection.find({description : data.story.description}, function(err, cursor){
  cursor.each(function(err, item){
    if(item != null){
      console.log("duplicate found\n"+util.inspect(item));
    }
  })
})

Можно ли получить размер курсора без использования счетчика в каждом цикле?

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Если вы проверяете наличие дубликатов, вы можете попробовать метод count (), прикрепленный к коллекции. E.g.:

collection.count({description: data.story.description}, function(err, count) {
  if (count > 1) console.log("Duplicates found!");
});

Cursor.toArray () просто использует cursor.each () в конце. В моем примере предполагается, что вы проверяете post-insert (), но вы можете проверить pre-with (count> 0) и вызвать insert () if (count == 0).

1 голос
/ 03 октября 2011

Нашли разумное решение:

collection.find({description : data.story.description}).toArray(function(err,items){
   console.log("Items:" + items.length);
})

Использование toArray и свойства .length массива для определения его размера!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...