MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Cursor.nextObject do Mongo às vezes retorna nulo erroneamente?


Ainda não tenho certeza do que está causando a pausa, mas parece que é o culpado.

Durante a pausa, Cursor.nextObject está sendo chamado várias vezes antes do primeiro retorno. Algumas dessas chamadas estão retornando null . A solução é garantir que Cursor.nextObject nunca é chamado simultaneamente.
if (this.cursor && !this.cursor_exec && this.length() < this.concurrency) {
    this.cursor_exec = true;
    this.cursor.nextObject(function(err, item) {
        console.log(this.name + ': ' + (item ? item._id : null) + ' ' + (err ? err : null));
        this.cursor_exec = false;
        if (item) {
            this.push(item);
        } else {
            delete this.cursor;
        }
    }.bind(this));
}