MongoDB Matrice di oggetti utilizzando insert() con Esempio
โก Riepilogo intelligente
MongoDB L'esempio "Array di oggetti con insert()" mostra come aggiungere piรน documenti a una collezione in un'unica operazione. Memorizza un array di record dei dipendenti, incorpora gli array all'interno di un documento e visualizza i risultati in modo ordinato utilizzando la funzione di stampa JSON.

Che cos'รจ il metodo insert() in MongoDB?
Il metodo insert() in MongoDB Aggiunge uno o piรน documenti a una collezione. Un documento รจ un insieme di coppie campo-valore memorizzate in BSON, una forma binaria di JSON. Quando si passa un singolo documento, il metodo insert() memorizza quel singolo record; quando si passa un array di documenti, li memorizza tutti in un'unica operazione, che รจ piรน veloce rispetto all'inserimento uno per uno.
Il metodo viene eseguito su una collezione specifica utilizzando il pattern db.collection.insert(). Se la collezione di destinazione non esiste ancora, MongoDB Lo crea automaticamente al primo inserimento. Ogni documento riceve anche un campo _id univoco se non ne fornisci uno, in modo che ogni record possa essere identificato in seguito.
Sebbene insert() funzioni ancora, i piรน recenti MongoDB Le versioni successive offrono i metodi insertOne() e insertMany() come alternative piรน chiare. Gli esempi seguenti utilizzano insert() per aggiungere un array di documenti dei dipendenti e quindi visualizzare i risultati in un formato JSON leggibile.
Aggiunta di un array di documenti
Il comando "inserisci" puรฒ essere utilizzato anche per inserire piรน documenti contemporaneamente in una raccolta. L'esempio di codice seguente puรฒ essere utilizzato per inserire piรน documenti contemporaneamente.
L'esempio seguente mostra come ciรฒ puรฒ essere fatto,
Passo 1) Creare un JavaCopione variabile denominata myEmployee per contenere l'array di documenti
Passo 2) Aggiungi i documenti richiesti con il nome del campo e i valori alla variabile
Passo 3) Utilizzare il comando insert per inserire l'array di documenti nella raccolta
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Se il comando viene eseguito correttamente, verrร visualizzato il seguente output
L'output mostra che questi 3 documenti sono stati aggiunti alla raccolta.
Come inserire un array all'interno di un documento
Oltre a inserire una serie di documenti separati, MongoDB consente di memorizzare un array come campo all'interno di un singolo documento. Ciรฒ รจ utile quando un record contiene naturalmente un elenco di valori, come ad esempio un dipendente che possiede diverse competenze o uno studente iscritto a piรน corsi. Perchรฉ MongoDB Utilizza un modello di documento flessibile: l'array risiede direttamente all'interno dell'oggetto anzichรฉ in una tabella separata, mantenendo cosรฌ insieme i dati correlati.
L'esempio seguente inserisce un documento dipendente che contiene un campo array denominato Competenze:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Le parti di questo documento funzionano nel modo seguente:
- ID dipendente and Nome del dipendente sono normali coppie campo-valore.
- Abilitร รจ un campo array che contiene tre valori stringa racchiusi tra parentesi quadre.
- L'intero documento, compreso l'array incorporato, viene memorizzato in una singola operazione di inserimento.
Dopo aver aggiunto il record, รจ possibile confermare l'array incorporato con una query di ricerca che stampa il risultato in formato JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
L'output mostra l'array Skills annidato all'interno del documento del dipendente. Laterร possibile aggiungere nuovi valori all'array con l'operatore $push oppure leggere un singolo elemento tramite il suo indice. Memorizzare i valori collegati in questo modo mantiene ogni documento autonomo, riduce la necessitร di join tra collezioni e semplifica la lettura e la gestione dei dati.
insert() vs insertOne() vs insertMany()
MongoDB Sono disponibili tre metodi correlati per l'aggiunta di dati. La tabella seguente li confronta, consentendoti di scegliere quello piรน adatto alle tue esigenze:
| Metodo | Missione | Esempio |
|---|---|---|
| inserire() | Metodo obsoleto per aggiungere un singolo documento o un array di documenti. Funziona ancora, ma รจ deprecato nei driver piรน recenti. | db.Employee.insert(myEmployee) |
| insertOne() | Aggiunge esattamente un documento e restituisce il suo _id inserito. Preferibile per singoli record. | db.Employee.insertOne({ โฆ }) |
| insertMany() | Aggiunge un array di documenti con una sola chiamata e restituisce tutti gli _id inseriti. Preferibile per inserimenti in blocco. | db.Employee.insertMany([ { โฆ }, { โฆ } ]) |
Per i nuovi progetti, si consiglia di utilizzare i metodi insertOne() e insertMany() perchรฉ offrono una descrizione piรน chiara e una migliore segnalazione degli errori. Il metodo insert() rimane disponibile principalmente per garantire la compatibilitร con i tutorial e gli script piรน vecchi.
Stampa in formato JSON
JSON รจ un formato chiamato JavaNotazione dell'oggetto script, ed รจ semplicemente un modo per archiviare informazioni in modo organizzato e di facile lettura. Nei nostri ulteriori esempi, utilizzeremo la funzionalitร di stampa JSON per vedere l'output in un formato migliore.
Diamo un'occhiata ad un esempio di stampa in formato JSON
db.Employee.find().forEach(printjson)
Code Spiegazione:
- La prima modifica consiste nell'aggiungere la funzione `forEach()` alla funzione `find()`. In questo modo, si garantisce che ogni documento della collezione venga esaminato esplicitamente. Ciรฒ offre un maggiore controllo sulle operazioni che รจ possibile eseguire su ciascun documento della collezione.
- La seconda modifica consiste nell'inserire il comando printjson nell'istruzione forEach. Ciรฒ farร sรฌ che ogni documento nella raccolta venga visualizzato in formato JSON.
Se il comando viene eseguito correttamente, verrร visualizzato il seguente output
Produzione:
L'output mostra chiaramente che tutti i documenti sono stampati in stile JSON.


