/ / Node.js + MongoDB: inserte uno y devuelva el documento recién insertado - node.js, mongodb

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

Me pregunto si hay una manera de insertar un nuevo documento y devolverlo de una sola vez.

Esto es lo que estoy usando actualmente:

db.collection("mycollection").insertOne(options, function (error, response) {
...
});

Respuestas

20 para la respuesta № 1

respuesta El resultado contiene información de éxito o no y el número de registro insertado. pero si desea devolver los datos insertados puede intentar response.ops

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

2 para la respuesta № 2

Podrías usar mangosta para hacer esto. Con el save Método que puede insertar un documento y devolverlo en caso de éxito. Aquí hay un ejemplo de la documentación de mangosta:

product.save(function (err, product, numAffected) {
if (err) {
// Handle error...
} else {
// Do something with the returned document...
}
})

0 para la respuesta № 3

Podrías usar mongojs para hacer esto.

db.collection("mycollection").save(doc, function(error, response){
// response has _id
})

0 para la respuesta № 4

El siguiente código funcionó para mí, en MongoDB versión 2.2.33.

db.collection("sample_collection").insertOne({
field1: "abcde"
}, (err, result) => {
if(err) console.log(err);
else console.log(result.ops[0].field1)
}