Come utilizzare la query UpSert in MongoDB

Come utilizzare la query UpSert in MongoDB
I database sono ampiamente classificati in tipi SQL e NOSQL. MongoDB rientra in quest'ultima categoria e supporta un linguaggio di interrogazione forte per elaborare i dati. La query UPSert in MongoDB viene utilizzata per aiutare l'aggiornamento e sostituire i metodi. Crea un nuovo documento se la condizione non è soddisfatta dai metodi di aggiornamento/sostituzione. Alcuni metodi estesi di un aggiornamento sono anche supportati da upsert query e includono TrovandModify, update (), sostituita ().

Questo articolo spiegherà l'uso della query UPSert dai livelli di base a quello avanzato. L'uso avanzato di questa query sarà spiegato applicando UpSert con diversi metodi.

Come funziona la query upsert in mongodb

L'opzione UpSert ha la seguente sintassi:

upsert:

Il valore booleano può essere vero falso. Per impostazione predefinita, l'UPSERT ha un file falso valore.

Come utilizzare la query UPSert con il metodo di aggiornamento

Questa sezione spiega la query UPSert con più comandi. Esercitamo prima il metodo di aggiornamento. Come funziona l'aggiornamento in una condizione in cui il documento che vogliamo abbinare non esiste?

La raccolta del personale contiene i seguenti documenti:

> db.personale.Trovare().bello()

Il comando sotto menzionato cerca di aggiornare un documento (_id: 3) ciò non esiste, quindi la query di aggiornamento non sarà né upsert aggiornamento qualsiasi documento.

> db.personale.AGGIORNAMENTO (_ ID: 3, nome: "Alen")

Ora aggiungiamo un upsert opzione e impostare il suo valore su VERO Nella stessa condizione che abbiamo spiegato sopra. Il comando menzionato di seguito tenta di aggiornare un documento che corrisponde al nome: "Sam"Campo, ma il documento non esiste.

Dall'output si osserva che il numero di valori di documento migliorati è "1".

> db.personale.Update (name: "Sam", Desig: "Team-Lead", upSert: true)

Per verificarlo, controlliamo i documenti all'interno "personale"Collezione utilizzando il seguente comando:

> db.personale.Trovare().bello()

Nota: Il metodo Pretty () viene utilizzato per ottenere l'output in un formato più chiaro.

Come utilizzare la query UPSert con il metodo di aggiornamento

L'opzione UPSERT può essere utilizzata con il metodo Aggiorna per inserire un documento se la corrispondenza della condizione non ha successo. IL "personale"La raccolta contiene tre documenti e vogliamo aggiungere un documento con (_id: 3) che non esiste. Produrre upsert Funzionale, è necessario impostare il suo valore su true, lo scenario sopra viene eseguito emettendo il comando menzionato di seguito:

> db.personale.Aggiornamento (_ id: 3, $ set: name: "sam", desig: "team-lead", upsert: true)

Nel comando sopra, abbiamo usato "_id: 3"Per abbinare un documento, quindi, al documento aggiornato è stato assegnato un ID univoco"_id: 3". Inoltre, puoi verificare il upsert azione ottenendo il contenuto di personale collezione:

> db.personale.Trovare().bello()

Come utilizzare la query UpSert con metodo sostitutivo

Il metodo sostitutivo sostituisce il valore del campo se la corrispondenza ha esito positivo. E se la corrispondenza non ha esito positivo, allora UpSert può essere utilizzato per aggiungere un nuovo documento.

Nel comando sotto indicato, Sostituire Il comando cerca di sostituire il documento che ha il campo "Nome: Tom"(Che non esiste in realtà). Il valore upsert è "VERO", Quindi aggiungerà un nuovo documento con un ID univoco predefinito che contiene il campo"Nome: Jobes" E "Desig: autore“:

> db.personale.sostituire (nome: "tom", name: "jobes", desig: "autore", upsert: true)

Come utilizzare UpSert con il metodo FindandModify

IL findandModify () modifica il documento e agisce quasi lo stesso del aggiornamento() Metodo, ma findNandModify () modifica solo un documento che si adatta prima, mentre il aggiornamento() Il metodo aggiorna tutti i documenti corrispondenti.

Il comando scritto di seguito mostra l'uso del Uspert con il metodo FindandModify (). Come il findandModify () Non corrisponde a qualsiasi documento, quindi arriva un nuovo documento:

IL "Domanda"La parola chiave usata nel comando tenta di abbinare"_id: 5"E cerca di aggiornare il"Num"Campo per valore"15“:

> db.personale.FindandModify (query: _id: 5, aggiornamento: $ inc: num: 15, upSert: true)

La query ritorna "nullo"Perché non abbiamo usato l'ordinamento nel comando e anche nessun documento corrisponde. Tuttavia, se guardi il contenuto di "personale"Collezione, troverai il documento recentemente aggiornato con valore ID"_id: 5“:

> db.personale.Trovare().bello()

Conclusione

MongoDB ha un lungo elenco di comandi e query per aggiornare o sostituire i dati all'interno dei documenti di una raccolta. O. In questa guida della serie MongoDB, abbiamo fornito l'utilizzo di una query UpSert con diversi comandi in MongoDB. Dopo aver analizzato il meccanismo di lavoro UPSert, si è concluso che UPSERT funge da metodo di inserzione per diversi metodi di aggiornamento/rimuovi in ​​MongoDB.