MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Cursor.nextObject di Mongo a volte restituisce erroneamente Null?

Non sono ancora sicuro di cosa stia causando la pausa, ma sembra che sia quello il colpevole.

Durante la pausa, Cursor.nextObject viene chiamato più volte prima dei primi ritorni. Alcune di queste chiamate stanno restituendo null . La soluzione è assicurarsi che Cursor.nextObject non viene mai chiamato contemporaneamente.

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