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

Node.js + MongoDB:inserte uno y devuelva el documento recién insertado

ACTUALIZACIÓN 2021: Este enfoque ya no funciona con el controlador MongoDB 4.x. El resultado de retorno de insertOne solo contiene una identificación y un indicador de reconocimiento:https://mongodb.github.io/node-mongodb-native/4.1/interfaces/InsertOneResult.html

Con este cambio, NO hay forma de lograr el comportamiento requerido. Se debe hacer otra solicitud de base de datos o combinar el insertId devuelto y los datos del objeto original.

La response El resultado contiene información sobre si el comando fue exitoso o no y la cantidad de registros insertados.

Si desea devolver los datos insertados, puede probar response.ops , por ejemplo:

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

Documentación oficial para insertOne :

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

La callback tipo:

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

El result tipo:

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