MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB insertMany()

In MongoDB il db.collection.insertMany() inserisce più documenti in una raccolta.

La collection part è il nome della collezione in cui inserire i documenti.

Esempio

Ecco un esempio di utilizzo di db.collection.insertMany() per inserire più documenti in una raccolta denominata pets :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog" },
    { _id: 2, name: "Bark", type: "Dog" },
    { _id: 3, name: "Meow", type: "Cat" }
    ])

Risultato:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

Il db.collection.insertMany() restituisce un documento contenente:

  • Un acknowledged booleano come true se l'operazione è stata eseguita con problemi di scrittura o false se il problema di scrittura è stato disabilitato.
  • Un array di _id valori per ogni documento inserito correttamente.

Ora se usiamo db.collection.find() per guardare la collezione, vedremo i documenti appena aggiunti.

db.pets.find()

Risultato:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

In questo caso, i nostri tre documenti sono gli unici della collezione, quindi solo questi documenti sono stati restituiti.

Tuttavia, se la raccolta era ampia, potremmo utilizzare gli ID documento per restringere il risultato ai soli documenti che ci interessano.

db.pets.find({_id: {$in: [1,2,3]}})

Risultato:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

E se la collezione non esiste?

Se la raccolta non esiste, viene creata e i documenti vengono aggiunti ad essa.

Se la raccolta esiste già, i documenti vengono semplicemente aggiunti ad essa (a condizione che il loro _id i valori non sono in conflitto con quelli esistenti).

Quando ho creato questo esempio, la raccolta non esisteva e quindi l'operazione di inserimento l'ha creata.

Il _id Campo

Il _id field è un campo identificatore univoco in MongoDB.

Come mostrato nell'esempio precedente, puoi fornire il tuo _id campo nel documento. In tal caso, il suo valore deve essere univoco all'interno della raccolta. Questo perché il tuo _id verrà utilizzato come identificatore univoco del documento.

Ecco un esempio di inserimento di documenti senza fornire il _id campi.

db.pets.insertMany([
    { name: "Bruce", type: "Bat" },
    { name: "Sweetie", type: "Honey Badger" }
    ])

Risultato:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5fe30ef737b49e0faf1af215"),
		ObjectId("5fe30ef737b49e0faf1af216")
	]
}

Il _id vengono restituiti i valori dei documenti. Potremmo usarli per cercare nella raccolta solo i documenti che abbiamo inserito.

Ma in questo caso, diamo un'occhiata all'intera collezione.

db.pets.find()

Risultato:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }

Possiamo vedere che i nostri due nuovi documenti sono inclusi nella raccolta.

Il ordered Parametro

Il db.collection.insertMany() accetta anche un ordered parametro. Questo è un parametro booleano con un valore predefinito di true .

Il ordered il parametro specifica se l'operazione di inserimento deve essere ordinata o annullata.

Se ordered è impostato su false , i documenti vengono inseriti in un formato non ordinato e possono essere riordinati da mongod per aumentare le prestazioni.

Con gli inserti ordinati, se si verifica un errore durante l'inserimento di uno dei documenti, MongoDB ritorna in errore senza elaborare i documenti rimanenti nell'array.

Con inserimenti non ordinati, se si verifica un errore durante l'inserimento di uno dei documenti, MongoDB continua a inserire i documenti rimanenti nell'array.

Maggiori informazioni

Il db.collection.insertMany() accetta anche un writeConcern argomento, che descrive il livello di riconoscimento richiesto da MongoDB per le operazioni di scrittura.

Consulta la documentazione di MongoDB per db.collection.insertMany() per ulteriori informazioni.