MongoDB fournit le insert()
méthode (et deux autres) pour ajouter des documents à une base de données.
MongoDB fournit les trois méthodes suivantes pour insérer des documents dans une base de données :
insert()
insertOne()
insertMany()
Le insert()
Méthode
Le insert()
La méthode insère un ou plusieurs documents dans une collection. Chaque document est fourni en paramètre. Le nom de la collection est ajouté au début du insert()
méthode.
Voici la syntaxe pour insérer un seul document :
db.collectionName.insert({ name: "value" })
Dans l'exemple ci-dessus, le document se compose de { name: "value" }
. Il s'agit d'un document JSON. Les documents JSON consistent en une ou plusieurs paires nom/valeur, entre accolades {}
.
MongoDB utilise des documents JSON pour stocker des données, c'est pourquoi nous insérons des documents dans ce format.
Nous avons déjà utilisé cette méthode lors de la création d'une base de données.
Ajoutons un autre document à notre base de données :
db.artists.insert({ artistname: "Jorn Lande" })
Cela insère un document avec { artistname: "Jorn Lande" }
que son contenu.
Maintenant, si nous recherchons les artistes collection, nous verrons deux documents (dont celui que nous avons créé précédemment) :
> db.artists.find() { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
Notez que MongoDB a créé un _id
champ pour les documents. Si vous n'en spécifiez pas, MongoDB en créera un pour vous. Cependant, vous pouvez fournir ce champ lors de l'insertion si vous préférez avoir le contrôle sur la valeur du _id
champ.
db.artists.insert({ _id: 1, artistname: "AC/DC" })
Résultat :
> db.artists.find() { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" }
Le _id
que MongoDB fournit est une valeur ObjectId de 12 octets. Il est composé des valeurs suivantes :
- une valeur de 4 octets représentant les secondes depuis l'époque Unix,
- un identifiant de machine de 3 octets,
- un identifiant de processus de 2 octets, et
- un compteur de 3 octets, commençant par une valeur aléatoire.
Créer plusieurs documents
Vous pouvez insérer plusieurs documents dans un seul insert()
méthode.
Dans cet exemple, nous insérons trois documents :
db.artists.insert( [ { artistname: "The Kooks" }, { artistname: "Bastille" }, { artistname: "Gang of Four" } ] )
Notez que les documents sont fournis sous forme de tableau. Les documents sont entre crochets []
, et ils sont séparés par des virgules.
L'exécution du code ci-dessus entraîne le message suivant :
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
Documents intégrés
Un document peut contenir d'autres documents, tableaux et tableaux de documents.
Vous pouvez également fournir plusieurs paires nom/valeur dans un document en les séparant par une virgule.
db.artists.insert({ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] })
Résultat :
WriteResult({ "nInserted" : 1 })
Paramètres
Le insert()
La méthode accepte les paramètres suivants.
Paramètre | Tapez | Description |
---|---|---|
document | document ou tableau | Un document ou un tableau de documents à insérer dans la collection (comme dans les exemples ci-dessus). |
writeConcern | document | Paramètre facultatif. Il s'agit d'un document exprimant le souci d'écriture. Un problème d'écriture décrit le niveau d'accusé de réception demandé à MongoDB pour les opérations d'écriture sur un mongod autonome ou sur des ensembles de réplicas ou sur des clusters fragmentés. |
ordered | booléen | Paramètre facultatif. Si la valeur est définie sur true , MongoDB effectuera une insertion ordonnée des documents dans le tableau, et si une erreur se produit avec l'un des documents, MongoDB reviendra sans traiter les documents restants dans le tableau.
Si la valeur est définie sur |
Le insertOne()
Méthode
Vous pouvez également utiliser le insertOne()
méthode pour insérer un seul document dans une collection :
db.musicians.insertOne({ _id: 1, name: "Ian Gillan", instrument: "Vocals" })
Ici, nous avons spécifié une collection inexistante. Comme avec le insert()
, la collection spécifiée sera créée si elle n'existe pas déjà.
Vous remarquerez que la sortie est différente lorsque vous utilisez le insert()
méthode :
{ "acknowledged" : true, "insertedId" : 1 }
Documents intégrés
Comme avec insert()
, vous pouvez insérer des documents intégrés et des tableaux de documents :
db.artists.insertOne({ artistname : "Miles Davis", albums : [ { album : "Kind of Blue", year : 1959, genre : "Jazz" }, { album : "Bitches Brew", year : 1970, genre : "Jazz" } ] })
Résultat :
{ "acknowledged" : true, "insertedId" : ObjectId("578214f048ef8c6b3ffb0159") }
Le insertMany()
Méthode
Comme son nom l'indique, vous pouvez utiliser insertMany()
pour insérer plusieurs documents :
db.musicians.insertMany( [ { _id: 2, name: "Ian Paice", instrument: "Drums", born: 1948 }, { _id: 3, name: "Roger Glover", instrument: "Bass", born: 1945 }, { _id: 4, name: "Steve Morse", instrument: "Guitar", born: 1954 }, { _id: 5, name: "Don Airey", instrument: "Keyboards", born: 1948 }, { _id: 6, name: "Jeff Martin", instrument: "Vocals", born: 1969 }, { _id: 7, name: "Jeff Burrows", instrument: "Drums", born: 1968 }, { _id: 8, name: "Stuart Chatwood", instrument: "Bass", born: 1969 }, ] )
Encore une fois, la sortie lors de l'utilisation de insertMany()
est différent que si vous insériez plusieurs documents à l'aide de insert()
méthode :
{ "acknowledged" : true, "insertedIds" : [ 2, 3, 4, 5, 6, 7, 8 ] }
Documents intégrés
db.artists.insertMany( [ { artistname : "Robben Ford", albums : [ { album : "Bringing it Back Home", year : 2013, genre : "Blues" }, { album : "Talk to Your Daughter", year : 1988, genre : "Blues" } ] }, { artistname : "Snoop Dogg", albums : [ { album : "Tha Doggfather", year : 1996, genre : "Rap" }, { album : "Reincarnated", year : 2013, genre : "Reggae" } ] } ])
Résultat :
{ "acknowledged" : true, "insertedIds" : [ ObjectId("578217c248ef8c6b3ffb015a"), ObjectId("578217c248ef8c6b3ffb015b") ] }