sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cursor.nextObject de Mongo a veces devuelve erróneamente nulo?

Todavía no estoy seguro de qué está causando la pausa, pero parece que ese es el culpable.

Durante la pausa, Cursor.nextObject está siendo llamado varias veces antes de que regrese el primero. Algunas de estas llamadas están devolviendo null . La solución es asegurarse de que Cursor.nextObject nunca se llama al mismo tiempo.

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