Insertar Node.js MongoDB
Insertar en la colección
Para insertar un registro, o documento como se llama en MongoDB, en una colección, usamos el
insertOne()
método.
Un documento en MongoDB es lo mismo que un registro en MySQL
El primer parámetro del insertOne()
método es un objeto que contiene los nombres y valores de cada campo en el documento que desea insertar.
También toma una función de devolución de llamada donde puede trabajar con cualquier error o el resultado de la inserción:
Ejemplo
Inserte un documento en la colección "clientes":
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myobj = { name: "Company
Inc", address: "Highway 37" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1
document
inserted");
db.close();
});
});
Guarde el código anterior en un archivo llamado "demo_mongodb_insert.js" y ejecute el archivo:
Ejecute "demo_mongodb_insert.js"
C:\Users\Your Name>node demo_mongodb_insert.js
Lo que te dará este resultado:
1 document inserted
Nota: si intenta insertar documentos en una colección que no existe, MongoDB creará la colección automáticamente.
Insertar varios documentos
Para insertar múltiples documentos en una colección en MongoDB, usamos el
insertMany()
método.
El primer parámetro del insertMany()
método es una matriz de objetos que contiene los datos que desea insertar.
También toma una función de devolución de llamada donde puede trabajar con cualquier error o el resultado de la inserción:
Ejemplo
Inserte varios documentos en la colección "clientes":
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myobj = [
{ name: 'John', address: 'Highway 71'},
{ name: 'Peter', address: 'Lowstreet 4'},
{ name: 'Amy',
address: 'Apple st 652'},
{ name: 'Hannah', address:
'Mountain 21'},
{ name: 'Michael', address: 'Valley
345'},
{ name: 'Sandy', address: 'Ocean blvd 2'},
{ name: 'Betty', address: 'Green Grass 1'},
{ name:
'Richard', address: 'Sky st 331'},
{ name: 'Susan',
address: 'One way 98'},
{ name: 'Vicky', address:
'Yellow Garden 2'},
{ name: 'Ben', address: 'Park Lane
38'},
{ name: 'William', address: 'Central st 954'},
{ name: 'Chuck', address: 'Main Road 989'},
{ name:
'Viola', address: 'Sideway 1633'}
];
dbo.collection("customers").insertMany(myobj,
function(err, res) {
if (err) throw err;
console.log("Number of documents inserted: " + res.insertedCount);
db.close();
});
});
Guarde el código anterior en un archivo llamado "demo_mongodb_insert_multiple.js" y ejecute el archivo:
Ejecute "demo_mongodb_insert_multiple.js"
C:\Users\Your Name>node demo_mongodb_insert_multiple.js
Lo que te dará este resultado:
Number of documents inserted: 14
El objeto de resultado
Al ejecutar el insertMany()
método, se devuelve un objeto de resultado.
El objeto de resultado contiene información sobre cómo la inserción afectó a la base de datos.
El objeto devuelto del ejemplo anterior se veía así:
{
result: { ok: 1, n: 14 },
ops: [
{
name: 'John', address: 'Highway 71', _id: 58fdbf5c0ef8a50b4cdd9a84 },
{ name: 'Peter', address: 'Lowstreet 4', _id: 58fdbf5c0ef8a50b4cdd9a85 },
{ name: 'Amy', address: 'Apple st 652', _id: 58fdbf5c0ef8a50b4cdd9a86 },
{ name: 'Hannah', address: 'Mountain 21', _id: 58fdbf5c0ef8a50b4cdd9a87 },
{ name: 'Michael', address: 'Valley 345', _id: 58fdbf5c0ef8a50b4cdd9a88 },
{ name: 'Sandy', address: 'Ocean blvd 2', _id: 58fdbf5c0ef8a50b4cdd9a89 },
{ name: 'Betty', address: 'Green Grass 1', _id: 58fdbf5c0ef8a50b4cdd9a8a },
{ name: 'Richard', address: 'Sky st 331', _id: 58fdbf5c0ef8a50b4cdd9a8b },
{ name: 'Susan', address: 'One way 98', _id: 58fdbf5c0ef8a50b4cdd9a8c },
{ name: 'Vicky', address: 'Yellow Garden 2', _id: 58fdbf5c0ef8a50b4cdd9a8d },
{ name: 'Ben', address: 'Park Lane 38', _id: 58fdbf5c0ef8a50b4cdd9a8e },
{ name: 'William', address: 'Central st 954', _id: 58fdbf5c0ef8a50b4cdd9a8f },
{ name: 'Chuck', address: 'Main Road 989', _id: 58fdbf5c0ef8a50b4cdd9a90 },
{ name: 'Viola', address: 'Sideway 1633', _id: 58fdbf5c0ef8a50b4cdd9a91 } ],
insertedCount: 14,
insertedIds: [
58fdbf5c0ef8a50b4cdd9a84,
58fdbf5c0ef8a50b4cdd9a85,
58fdbf5c0ef8a50b4cdd9a86,
58fdbf5c0ef8a50b4cdd9a87,
58fdbf5c0ef8a50b4cdd9a88,
58fdbf5c0ef8a50b4cdd9a89,
58fdbf5c0ef8a50b4cdd9a8a,
58fdbf5c0ef8a50b4cdd9a8b,
58fdbf5c0ef8a50b4cdd9a8c,
58fdbf5c0ef8a50b4cdd9a8d,
58fdbf5c0ef8a50b4cdd9a8e,
58fdbf5c0ef8a50b4cdd9a8f
58fdbf5c0ef8a50b4cdd9a90,
58fdbf5c0ef8a50b4cdd9a91 ]
}
Los valores de las propiedades se pueden mostrar así:
Ejemplo
Devuelve el número de documentos insertados:
console.log(res.insertedCount)
Lo que producirá este resultado:
14
El campo _id
Si no especifica un _id
campo, MongoDB agregará uno por usted y asignará una identificación única para cada documento.
En el ejemplo anterior , no _id
se especificó ningún campo y, como puede ver en el objeto de resultado, MongoDB asignó un _id único para cada documento.
Si especifica el campo ,_id
el valor debe ser único para cada documento:
Ejemplo
Inserte tres registros en una tabla de "productos", con
_id
campos específicos:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myobj = [
{ _id: 154, name:
'Chocolate Heaven'},
{ _id: 155, name:
'Tasty Lemon'},
{ _id: 156, name:
'Vanilla Dream'}
];
dbo.collection("products").insertMany(myobj,
function(err, res) {
if (err) throw err;
console.log(res);
db.close();
});
});
Guarde el código anterior en un archivo llamado "demo_mongodb_insert_id.js" y ejecute el archivo:
Ejecute "demo_mongodb_insert_id.js"
C:\Users\Your Name>node demo_mongodb_insert_id.js
Lo que te dará este resultado:
{
result: { ok: 1, n: 3 },
ops: [
{
_id: 154, name: 'Chocolate Heaven },
{
_id: 155, name: 'Tasty Lemon },
{
_id: 156, name: 'Vanilla Dream } ],
insertedCount: 3,
insertedIds: [
154,
155,
156 ]
}