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.

  • ๐Ÿ“ฅ Inserto per la confezione sfusa: Il metodo insert() aggiunge un array di documenti a una collezione in un'unica operazione efficiente.
  • ๐Ÿงพ Modello di documento: Ogni documento รจ un insieme di coppie campo-valore e MongoDB aggiunge automaticamente un _id univoco.
  • ๐Ÿ—‚๏ธ Array incorporati: Un array puรฒ anche esistere come campo all'interno di un documento, mantieniloping valori correlati insieme.
  • ๐Ÿ” Metodi moderni: Le funzioni insertOne() e insertMany() sono le alternative piรน chiare e attuali al vecchio metodo insert().
  • ๐Ÿ–จ๏ธ Readable Produzione: Il comando forEach(printjson) stampa ogni documento in un formato JSON pulito e di facile lettura.

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

MongoDB Matrice di oggetti utilizzando insert()

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:

  1. 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.
  2. 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:

Stampa in formato JSON

L'output mostra chiaramente che tutti i documenti sono stampati in stile JSON.

DOMANDE FREQUENTI

Sรฌ. Passando un array di documenti alla funzione insert(), questi vengono aggiunti tutti in un'unica operazione. Questo inserimento in blocco รจ piรน veloce rispetto alla chiamata separata di insert() per ogni documento, sebbene insertMany() sia ora il metodo preferito.

Sรฌ. Se un documento non include un campo _id, MongoDB genera automaticamente un ObjectId univoco durante l'inserimento, in modo che ogni record memorizzato possa essere identificato e recuperato in seguito.

Per impostazione predefinita, MongoDB Esegue un inserimento ordinato. Aggiunge i documenti nell'ordine specificato e si ferma al primo errore, lasciando i documenti rimanenti non inseriti. Impostando "ordered" su false, l'operazione continua anche in presenza di errori.

Sรฌ. Gli strumenti di intelligenza artificiale possono trasformare una descrizione in linguaggio naturale dei dati in istruzioni insertOne() o insertMany(), inclusi gli array incorporati. รˆ sempre consigliabile rivedere i campi e i tipi di dati generati prima di eseguirli su un database.

L'intelligenza artificiale puรฒ suggerire se incorporare gli array all'interno di un documento o fare riferimento a raccolte separate, in base ai modelli di query. Questo aiuta i principianti a modellare i dati in modo efficiente, evitando duplicazioni inutili o annidamenti eccessivamente profondi.

Riassumi questo post con: