In questo articolo, impareremo come inserire più documenti contemporaneamente in una determinata raccolta utilizzando i comandi nativi della shell Mongodb.
Metodo MongoDB InsertMany ()
Come suggerisce il nome, il metodo InsertMany () ci consente di specificare una serie di documenti e inserirli tutti in una volta in una determinata raccolta.
Di seguito mostra la sintassi del metodo InsertMany ():
db.collezione.InsertMany (
[,,, ...],
WriteConcern: ,
ordinato:
)
Il parametro è il seguente:
- Documento: specifica una serie di documenti da inserire in una determinata raccolta.
- WriteConcern - Definisce i parametri di preoccupazione di scrittura che sovrascrive il problema di scrittura predefinito. Un problema di scrittura viene utilizzato per definire il livello di riconoscimento richiesto da MongoDB per le operazioni di scrittura.
- Ordinato -Feefines se l'istanza MongoDB deve eseguire un inserto ordinato o non ordinato.
Il metodo dovrebbe restituire una dichiarazione di riconoscimento che include una dichiarazione booleana e il numero di documenti inseriti.
Diamo un'occhiata a un esempio pratico.
Definire una raccolta
Iniziamo creando una semplice raccolta in cui possiamo inserire dati di esempio. Accedi nella shell Mongodb ed esegui il comando:
$ Mongosh
db.CreateCollection ("dipendenti")
Il comando sopra dovrebbe creare una nuova raccolta chiamata dipendente.
Inserire più documenti con campo _id
MongoDB è un database molto flessibile. Ci consente di inserire documenti senza specificare il campo _id. Per impostazione predefinita, MongoDB genererà un identificatore univoco per ogni documento inserito nella raccolta
L'esempio seguente mostra come utilizzare il metodo InsertMany () per inserire più documenti senza il campo _id.
db.dipendenti.InsertMany ([
Nome: "Ryan", Dipartimento: "Sviluppo del gioco", Stipendio: 120000,
Nome: "David", Dipartimento: "Sviluppo back -end", Stipendio: 108000,
Nome: "Rachael", Dipartimento: "Sviluppo Full Stack", Stipendio: 110000,
Nome: "James", Dipartimento: "Devople Development", Stipendio: 110000,
Nome: "Peter", Dipartimento: "Sviluppo del gioco", Stipendio: 123000,
])
Se eseguiamo la query sopra, dovremmo ottenere un output come mostrato:
"riconosciuto": vero,
"inseritedids": [
ObjectID ("632BD2F28B16030EBD4Fad6"),
ObjectID ("632BD2F28B16030EBD4Fad7"),
ObjectID ("632BD2F28B16030EBD4Fad8"),
ObjectID ("632BD2F28B16030EBD4FAD9"),
ObjectID ("632BD2F28B16030EBD4FADA")
"
Quanto sopra mostra un messaggio di riconoscimento e i valori ID generati automaticamente.
Possiamo individuare i documenti inseriti come:
db.dipendenti.Trovare()
Il comando sopra dovrebbe restituire i documenti inseriti come mostrato:
"_id": objectid ("632bd2f28b16030ebd4fad6"),
"Nome": "Ryan",
"Dipartimento": "Sviluppo del gioco",
"Stipendio": 120000.0
"_id": objectid ("632bd2f28b16030ebd4fad7"),
"Nome": "David",
"Dipartimento": "Sviluppo del backend",
"Stipendio": 108000.0
"_id": objectid ("632bd2f28b16030ebd4fad8"),
"Nome": "Rachael",
"Dipartimento": "sviluppo completo dello stack",
"Stipendio": 110000.0
"_id": objectid ("632bd2f28b16030ebd4fad9"),
"Nome": "James",
"Dipartimento": "Devops Development",
"Stipendio": 110000.0
Inserire più documenti con campo _id
Se non desideriamo che MongoDB abbia generato un valore _id, possiamo specificare esplicitamente i valori per la colonna _id come mostrato nell'esempio seguente:
db.dipendenti.InsertMany ([
_id: 1, nome: "Ryan", Dipartimento: "Sviluppo del gioco", Stipendio: 120000,
_id: 2, nome: "David", Dipartimento: "Sviluppo di backend", Stipendio: 108000,
_id: 3, nome: "Rachael", Dipartimento: "Sviluppo completo dello stack", Stipendio: 110000,
_id: 4, nome: "James", Dipartimento: "Devople Development", Stipendio: 110000,
_id: 5, nome: "Peter", Dipartimento: "Sviluppo del gioco", Stipendio: 123000,
])
Nell'esempio sopra, specifichiamo esplicitamente i valori della colonna _id per ciascun documento inserito nella raccolta.
La query sopra dovrebbe tornare:
"riconosciuto": vero,
"inseritedids": [
1.0,
2.0,
3.0,
4.0,
5.0
"
Inserto non ordinato
Possiamo anche eseguire un inserto non ordinato impostando il parametro ordinato su False come mostrato di seguito:
db.dipendenti.InsertMany ([
_id: 1, nome: "Ryan", Dipartimento: "Sviluppo del gioco", Stipendio: 120000,
_id: 2, nome: "David", Dipartimento: "Sviluppo di backend", Stipendio: 108000,
_id: 3, nome: "Rachael", Dipartimento: "Sviluppo completo dello stack", Stipendio: 110000,
_id: 4, nome: "James", Dipartimento: "Devople Development", Stipendio: 110000,
_id: 5, nome: "Peter", Dipartimento: "Sviluppo del gioco", Stipendio: 123000,
], ordinato: false)
Questo è utile quando si lavora con documenti duplicati.
Conclusione
In questo post, abbiamo coperto i fondamenti del lavoro con MongoDB Insertmany () per aggiungere più documenti a una determinata raccolta in un unico comando.