MongoDB $ Addtoset

MongoDB $ Addtoset
L'operatore $ ADDTOSET è tra quegli operatori di aggiornamento () di array che MongoDB offre per aggiornare il valore del campo dell'array nei documenti. L'operatore $ Addtoset ha richiesto le voci univoci per essere aggiunte o aggiunte nel campo dell'array specificato. Se un valore è già presente nell'array dato, allora $ addtoset recupera l'array esatto senza modifiche. L'operatore $ addtoset deve assicurarsi che un array non contenga elementi duplicati quando viene aggiornato, ma è possibile per l'ordine degli elementi di un array da modificare dopo che è stato aggiunto un valore.

Come utilizzare l'operatore MongoDB $ Addtoset?

L'operatore $ ADDTOSET è impiegato nel metodo Update () di MongoDB. L'operatore $ ADDTOSET inserisce il parametro "campo" e la "aggiunta". Il "campo" indica che la colonna del documento da aggiornare. L '"aggiunta" è il parametro a cui viene assegnato il valore da inserire nell'array al campo corrispondente. Prima di utilizzare l'operatore $ ADDTOSET nella query MongoDB, dobbiamo stabilire la raccolta. Qui, abbiamo una raccolta di "corsi" mongodb a cui abbiamo applicato la query insertmany () per aggiungere i seguenti documenti.

db.Corsi.InsertMany ([

"_id": 1,
"Campo": "esso",
"Corsi": ["Web Development", "Database", "Python"],
"Credithours": [5, 2, 7]
,

"_id": 2,
"Campo": "CS",
"Corsi": ["Python", "Networking", "Computing"],
"Credithours": [8, 4, 2]
,

"_id": 3,
"Campo": "SE",
"Corsi": ["Data Science", "Python", "IBM"],
"Credithours": [2, 9, 5]

])

Il risultato dell'aggiunta dei documenti alla collezione "Corsi" è presentato di seguito.

riconosciuto: True, InsertedIds: '0': 1, '1': 2, '2': 3

Esempio n. 1: query dell'operatore $ addtoset in MongoDB per aggiungere il valore in un campo array

Qui, stiamo aggiungendo il nuovo valore nel campo utilizzando l'operatore $ Addtoset. Nella query MongoDB, abbiamo impiegato il metodo Update () sui "corsi" di raccolta. Il metodo update () inserisce ulteriormente la condizione "campo": "cs" prima dell'operatore $ addtoset. In primo luogo, il documento verrà ricercato che è impostato con il valore "CS" contro la colonna "campo" nella raccolta. Quando il documento verrà abbinato, l'operatore $ Addtoset procederà con l'operatore dell'apprendimento del valore. Abbiamo fornito all'operatore $ Addtoset il campo di array "corsi" per aggiungere un nuovo elemento di valore "account".

db.Corsi.Aggiornamento ("field": "cs", $ addtoset: "corsi": "account")

L'output mostra che i nuovi "account" di elemento dell'array sono aggiunti nei "corsi" di campo.


riconosciuto: vero,
inseritedid: null,
MATCHEDCOUNT: 1,
ModifiedCount: 1,
UpSertedCount: 0

Abbiamo esaminato la nostra raccolta per confermare la modifica. I "corsi" del campo dell'array vengono modificati correttamente con i nuovi "account".


_id: 2,
Field: 'CS',
Corsi: ["Python", "Networking", "Computing", "Account"],
Credithours: [8, 4, 2]

Esempio n. 2: query dell'operatore $ Addtoset in MongoDB per aggiungere un nuovo campo

Nella query sopra, l'operatore $ Addtoset viene utilizzato per aggiungere il nuovo valore nel campo esistente. Inoltre, possiamo inserire il nuovo campo nel documento utilizzando l'operatore $ ADDTOSET nel metodo Update (). Facciamo la seguente query MongoDB. Abbiamo impostato il metodo update () in cui è fornita l'espressione "_id": 2 "per abbinare quel particolare documento. Quindi, abbiamo assegnato l'operatore $ Addtoset per aggiungere il nuovo campo insieme al nuovo valore. Qui, abbiamo aggiunto il "insegnante" del campo dell'array che non esiste nei documenti della raccolta "corsi". Il campo "insegnanti" è assegnato con una serie di nomi degli insegnanti.

db.Corsi.aggiornamento(
"_id": 2,
$ AddToset: "Teachers": ["Mr Sam", "MS Alice"]
)

Il "ModifiedCount: 1" nel seguente output mostra che il documento viene aggiornato con il nuovo campo "insegnanti" e i valori dell'array.


riconosciuto: vero,
inseritedid: null,
MATCHEDCOUNT: 1,
ModifiedCount: 1,
UpSertedCount: 0

Ora, quando i documenti vengono controllati, si è presentata con i nuovi risultati di aggiornamento come segue:


_id: 2,
Field: 'CS',
Corsi: ["Python", "Networking", "Computing", "Account"],
Credithours: [8, 4, 2, 7, 3],
Insegnanti: [['Mr Sam', 'Sig.ra Alice']

Esempio n. 3: query dell'operatore $ addtoset in MongoDB per aggiungere un array nell'array esistente

Inoltre, possiamo aggiungere un intero nuovo array all'array già presente utilizzando l'operatore $ Addtoset. L'intero array viene aggiunto come un array separato. Qui, abbiamo dato una domanda a questa affermazione. Abbiamo un metodo update () a cui abbiamo assegnato una condizione “_id”: 3 come primo parametro. Quindi, il documento con il numero "_id" "3" sarà abbinato alla condizione di aggiornamento e quindi il parametro successivo procederà. Il parametro successivo del metodo update () è il metodo "$ addtoset" per aggiungere l'array all'array esistente. Abbiamo specificato l'array "[3, 1, 2]" sul campo "credithours". Questo array verrà aggiunto come un array separato all'interno dell'array esistente del campo "credithours".

db.Corsi.aggiornamento(
"_id": 3,
$ addToset: "credithours": [3, 1, 2]
)

Le seguenti informazioni indicano che l'array viene aggiunto al presente array:


riconosciuto: vero,
inseritedid: null,
MATCHEDCOUNT: 1,
ModifiedCount: 1,
UpSertedCount: 0

Il documento mostrato di seguito viene aggiornato con la nuova modifica che abbiamo apportato.


_id: 3,
Campo: 'se',
Corsi: ["Data Science", "Python", "IBM"],
Credithours: [2, 9, 5, [3, 1, 2]]

Esempio n. 4: query dell'operatore $ addtoset in mongoDB per aggiungere più valori

$ Addtoset ci consente di aggiungere più di un valore contemporaneamente in un array prendendo l'operatore $ ciascuno come parametro. Il $ ogni operatore viene utilizzato per aggiungere più voci a un array fornito. Qui, abbiamo fornito una domanda in cui dobbiamo soddisfare la condizione "" _id ": 2" del metodo update (). Quindi, abbiamo l'operatore $ ADDTOSET in cui abbiamo impiegato l'operatore $ ciascuno per aggiungere i due valori "7" e "3" sul campo "credithours".

db.Corsi.aggiornamento ("_id": 2, $ addToset: "credithours": $ ciascuno: [7,3]);

La query sopra eseguita ha visualizzato l'output di conferma che indica che i valori sono inseriti nel documento abbinato.


riconosciuto: vero,
inseritedid: null,
MATCHEDCOUNT: 1,
ModifiedCount: 1,
UpSertedCount: 0

I due elementi dell'array "7" e "3" sono aggiunti nel campo dell'array "credithours".


_id: 2,
Field: 'CS',
Corsi: ["Python", "Networking", "Computing", "Account"],
Credithours: [8, 4, 2, 7, 3]

Esempio n. 5: query dell'operatore $ addtoset in MongoDB per aggiungere il valore esistente

Quando il valore dell'array è già presente, cerchiamo di inserire nuovamente quel valore nel campo, l'operatore $ addset di $ non fa nulla. Per dirla in altro modo, $ addtoset aggiunge un valore solo se non esiste già. Lì, abbiamo dato una domanda nella shell del mongodb in cui abbiamo utilizzato il metodo update (). All'interno del metodo Update (), abbiamo superato la condizione che il documento abbia "_id" uguale a "1". Successivamente, abbiamo chiamato l'operatore $ Addtoset che prende il campo "corsi" con il valore del parametro "aggiunta" "database". Il "database" esiste già nel documento specificato in modo che l'operatore $ Addtoset non aggiorni questo valore.

db.Corsi.aggiornamento(
_id: 1,
$ addToset: "corsi": "database"
)

Possiamo vedere che l'opzione "ModifiedCount" ha un valore "0" che mostra che il documento non è modificato.


riconosciuto: vero,
inseritedid: null,
MATCHEDCOUNT: 1,
ModifiedCount: 0,
UpSertedCount: 0

Il documento abbinato viene anche controllato di seguito per visualizzare che i valori già esistenti non possono essere aggiunti di nuovo dall'operatore $ Addtoset.


_id: 1,
Campo: 'esso',
Corsi: ["Web Development", "Database", "Python"],
Credithours: [5, 2, 7, 3]

Conclusione

L'articolo riguarda la discussione dell'operatore MongoDB $ Addtoset. Abbiamo visto l'operazione $ Addtoset all'interno della query di aggiornamento MongoDB. Il primo esempio è che l'operatore Addtoset $ aggiunge il valore univoco nell'array del documento. Abbiamo quindi aggiunto il campo di non esistenza con l'operatore $ addtoset. Il nuovo array è inoltre aggiunto all'array già specificato. Successivamente, abbiamo aggiunto l'array con più voci, quindi abbiamo tentato di inserire il valore duplicato nell'array con l'operatore $ ADDTOSET.