MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Node.js + MongoDB:insira um e retorne o documento recém-inserido


ATUALIZAÇÃO 2021: Essa abordagem não funciona mais com o driver MongoDB 4.x. O resultado de retorno do insertOne contém apenas um sinalizador de ID e confirmação:https://mongodb.github.io/node-mongodb-native/4.1/interfaces/InsertOneResult.html

Com essa mudança, NÃO há como realizar o comportamento necessário. Deve-se fazer outra solicitação de banco de dados ou combinar o insertId retornado e os dados do objeto original.

A response result contém informações sobre se o comando foi bem-sucedido ou não e o número de registros inseridos.

Se você deseja retornar os dados inseridos, tente response.ops , por exemplo:
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 
    }
});

Documentação oficial para insertOne :

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

O callback tipo:

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

O result tipo:

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