MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Node.js + MongoDB:Fügen Sie eins ein und geben Sie das neu eingefügte Dokument zurück

AKTUALISIERUNG 2021: Dieser Ansatz funktioniert nicht mehr mit dem MongoDB-Treiber 4.x. Das Rückgabeergebnis von insertOne enthält nur eine ID und ein Bestätigungs-Flag:https://mongodb.github.io/node-mongodb-native/4.1/interfaces/InsertOneResult.html

Mit dieser Änderung gibt es KEINE Möglichkeit, das erforderliche Verhalten zu erreichen. Man sollte entweder eine weitere DB-Anfrage machen oder die zurückgegebene InsertId und die ursprünglichen Objektdaten kombinieren.

Die response Ergebnis enthält Informationen darüber, ob der Befehl erfolgreich war oder nicht, und die Anzahl der eingefügten Datensätze.

Wenn Sie eingefügte Daten zurückgeben möchten, können Sie es mit response.ops versuchen , zum Beispiel:

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

Offizielle Dokumentation für insertOne :

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

Der callback Typ:

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

Das result Typ:

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