MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Cursor.nextObject de Mongo renvoie parfois null par erreur ?

Je ne sais toujours pas ce qui cause la pause, mais il semble que ce soit le coupable.

Pendant la pause, Cursor.nextObject est appelé plusieurs fois avant le premier retour. Certains de ces appels renvoient null . La solution est de s'assurer que Cursor.nextObject n'est jamais appelé simultanément.

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