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

Node.js + MongoDB:inserirne uno e restituire il documento appena inserito

AGGIORNAMENTO 2021: Questo approccio non funziona più con il driver MongoDB 4.x. Il risultato di ritorno di insertOne contiene solo un ID e un flag di riconoscimento:https://mongodb.github.io/node-mongodb-native/4.1/interfaces/InsertOneResult.html

Con questo cambiamento, NON c'è modo di ottenere il comportamento richiesto. Si dovrebbe eseguire un'altra richiesta DB o combinare l'insertId restituito e i dati dell'oggetto originale.

La response result contiene informazioni sull'esito positivo o negativo del comando e sul numero di record inseriti.

Se vuoi restituire i dati inseriti, puoi provare response.ops , ad esempio:

db.collection('mycollection').insertOne(doc, function (error, response) {
    if(error) {
        console.log('Error occurred while inserting');
       // return 
    } else {
       console.log('inserted record', response.ops[0]);
      // return 
    }
});

Documentazione ufficiale per insertOne :

http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertOne

Il callback digita:

http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~insertOneWriteOpCallback

Il result digita:

http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~insertOneWriteOpResult