Node.js Insertion MongoDB


Insérer dans la collection

Pour insérer un enregistrement, ou un document comme on l'appelle dans MongoDB, dans une collection, nous utilisons la insertOne()méthode .

Un document dans MongoDB est identique à un enregistrement dans MySQL

Le premier paramètre de la insertOne()méthode est un objet contenant le(s) nom(s) et valeur(s) de chaque champ du document que vous souhaitez insérer.

Il prend également une fonction de rappel où vous pouvez travailler avec toutes les erreurs ou le résultat de l'insertion :

Exemple

Insérez un document dans la collection "clients" :

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

Enregistrez le code ci-dessus dans un fichier appelé "demo_mongodb_insert.js" et exécutez le fichier :

Exécutez "demo_mongodb_insert.js"

C:\Users\Your Name>node demo_mongodb_insert.js

Ce qui vous donnera ce résultat :

1 document inserted

Remarque : Si vous essayez d'insérer des documents dans une collection qui n'existe pas, MongoDB créera automatiquement la collection.



Insérer plusieurs documents

Pour insérer plusieurs documents dans une collection dans MongoDB, nous utilisons la insertMany()méthode.

Le premier paramètre de la insertMany()méthode est un tableau d'objets, contenant les données que vous souhaitez insérer.

Il prend également une fonction de rappel où vous pouvez travailler avec toutes les erreurs ou le résultat de l'insertion :

Exemple

Insérez plusieurs documents dans la collection "clients" :

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

Enregistrez le code ci-dessus dans un fichier appelé "demo_mongodb_insert_multiple.js" et exécutez le fichier :

Exécutez "demo_mongodb_insert_multiple.js"

C:\Users\Your Name>node demo_mongodb_insert_multiple.js

Ce qui vous donnera ce résultat :

Number of documents inserted: 14

L'objet de résultat

Lors de l'exécution de la insertMany()méthode, un objet de résultat est renvoyé.

L'objet de résultat contient des informations sur la manière dont l'insertion a affecté la base de données.

L'objet renvoyé par l'exemple ci-dessus ressemblait à ceci :

{
  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 ]
}

Les valeurs des propriétés peuvent être affichées comme ceci :

Exemple

Renvoie le nombre de documents insérés :

console.log(res.insertedCount)

Ce qui produira ce résultat :

14

Le champ _id

Si vous ne spécifiez pas de _idchamp, MongoDB en ajoutera un pour vous et attribuera un identifiant unique pour chaque document.

Dans l'exemple ci-dessus, aucun _idchamp n'a été spécifié, et comme vous pouvez le voir à partir de l'objet de résultat, MongoDB a attribué un _id unique pour chaque document.

Si vous spécifiez le _idchamp, la valeur doit être unique pour chaque document :

Exemple

Insérez trois enregistrements dans une table "produits", avec des _idchamps spécifiés :

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

Enregistrez le code ci-dessus dans un fichier appelé "demo_mongodb_insert_id.js" et exécutez le fichier :

Exécutez "demo_mongodb_insert_id.js"

C:\Users\Your Name>node demo_mongodb_insert_id.js

Ce qui vous donnera ce résultat :

{
  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 ]
}