MongoDB $ addtoset

MongoDB $ addtoset
Der $ addtoSet -Betreiber gehört zu den Array -Update () -Preibern, die MongoDB anbietet, um den Array -Feldwert in Dokumenten zu aktualisieren. Der $ addtoSet -Operator musste eindeutige Einträge hinzufügen oder im Feld angegebenes Array hinzugefügt werden. Wenn im angegebenen Array bereits ein Wert vorhanden ist, ruft das $ addtoSet das genaue Array ohne Änderung ab. Der $ addtoSet -Operator muss sicherstellen.

So verwenden Sie den MongoDB $ addtoset -Operator?

Der $ addtoSet -Operator wird in der update () -Methode von mongoDB verwendet. Der $ addtoSet -Operator gibt den Parameter „Feld“ und die „Addition“ ein. Das „Feld“ gibt die Spalte des zu aktualisierenden Dokuments an. Der „Addition“ ist der Parameter, dem der Wert zugewiesen wird, der in das Array in das entsprechende Feld eingefügt wird. Bevor wir den $ addtoSet -Operator in der MongoDB -Abfrage verwenden, müssen wir die Sammlung festlegen. Hier haben wir eine MongoDB -Sammlung von „Kursen“, auf die wir die InsertMany () -Anfrage angewendet haben.

db.Kurse.InsertMany ([

"_id": 1,
"Feld": "es",
"Kurse": ["Webentwicklung", "Datenbank", "Python"],
"Credithours": [5, 2, 7]
,

"_id": 2,
"Feld": "CS",
"Kurse": ["Python", "Networking", "Computing"],
"Credithours": [8, 4, 2]
,

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

]))

Das Ergebnis des Hinzufügens der Dokumente in die Sammlung „Kurse“ wird unten dargestellt.

Anerkannt: TRUE, InisedIds: '0': 1, '1': 2, '2': 3

Beispiel Nr. 1: Abfrage des $ addtoSet -Operators in MongoDB, um den Wert in einem Array -Feld anzuhängen

Hier geben wir den neuen Wert im Feld an, indem wir den $ addtoSet -Operator verwenden. In der MongoDB -Abfrage haben wir die Update () -Methode in der Sammlung „Kurse“ verwendet. Die update () -Methode gibt die Bedingung "Feld" weiter ein: "CS" vor dem $ addtoset -Operator. Zunächst wird das Dokument durchsucht, das mit dem Wert „CS“ gegen das Spalte „Feld“ in der Sammlung festgelegt wird. Wenn das Dokument übereinstimmt. Wir haben dem $ addtoSet -Betreiber das Array -Feld „Kurse“ zur Verfügung gestellt, um ein neues Wert -Array -Element „Konten“ anzuhängen.

db.Kurse.update ("field": "cs", $ addtoSet: "Kurse": "Konten")

Die Ausgabe zeigt, dass das Neuarray -Element „Konten“ im Feld „Kurse“ angehängt ist.


Anerkannt: wahr,
Eingeklagte: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Wir haben unsere Sammlung untersucht, um die Änderung zu bestätigen. Das Array -Feld „Kurse“ wird erfolgreich mit dem neuen Wert „Konten“ geändert.


_id: 2,
Feld: 'CS' ',
Kurse: ['Python', 'Networking', 'Computing', 'Accounts'],
Credithours: [8, 4, 2]

Beispiel Nr. 2: Abfrage des $ addtoSet -Operators in MongoDB, um ein neues Feld hinzuzufügen

In der obigen Abfrage wird der $ addtoSet -Operator verwendet, um den neuen Wert im vorhandenen Feld anzuhängen. Darüber hinaus können wir das neue Feld in das Dokument einfügen, indem wir den $ addtoSet -Operator in der Methode update () verwenden. Lassen Sie uns die folgende MongoDB -Abfrage haben. Wir haben die update () -Methode festgelegt, wobei der Ausdruck "" _id ": 2" bereitgestellt wird, um dem bestimmten Dokument übereinzustimmen. Dann haben wir dem $ addtoset -Operator das neue Feld zusammen mit dem neuen Wert hinzugefügt. Hier haben wir das Array -Feld „Lehrer“ hinzugefügt, der in den Dokumenten der Sammlung „Kurse“ nicht vorhanden ist. Das Feld „Lehrer“ wird mit einer Reihe von Lehrernamen zugeordnet.

db.Kurse.aktualisieren(
"_id": 2,
$ addtoset: "Lehrer": ["Mr Sam", "MS Alice"]
)

Das "ModifiedCount: 1" in der folgenden Ausgabe zeigt, dass das Dokument mit dem neuen Feld „Lehrer“ und den Array -Werten aktualisiert wird.


Anerkannt: wahr,
Eingeklagte: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Wenn die Dokumente nun überprüft werden, wurde sie wie folgt mit den neuen Update -Ergebnissen angezeigt:


_id: 2,
Feld: 'CS' ',
Kurse: ['Python', 'Networking', 'Computing', 'Accounts'],
Credithours: [8, 4, 2, 7, 3],
Lehrer: ['Mr Sam', 'Frau Alice']]

Beispiel Nr. 3: Abfrage des $ addtoSet -Operators in MongoDB, um ein Array in das vorhandene Array hinzuzufügen

Zusätzlich können wir mit dem $ addtoSet -Operator ein ganzes Neues Array zum bereits vorhandenen Array hinzufügen. Das gesamte Array wird als separates Array angehängt. Hier haben wir eine Anfrage zu dieser Erklärung gegeben. Wir haben eine update () -Methode, mit der wir eine Bedingung „_id“: 3 als erster Parameter zugewiesen haben. Das Dokument mit der Nummer "_id" "3" wird also mit der Aktualisierungsbedingung abgestimmt, und dann wird der nächste Parameter fortgesetzt. Der nächste Parameter der Methode update () ist die Methode „$ addtoset“ zum Hinzufügen des Arrays zum vorhandenen Array. Wir haben das Array "[3, 1, 2]" dem Feld "Credithours" angegeben. Dieses Array wird als separates Array im vorhandenen Array des Feldes „Credithours“ hinzugefügt.

db.Kurse.aktualisieren(
"_id": 3,
$ addtoSet: "CreditHours": [3, 1, 2]
)

Die folgenden Informationen geben an, dass das Array dem vorliegenden Array hinzugefügt wird:


Anerkannt: wahr,
Eingeklagte: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Das unten gezeigte Dokument wird mit der neuen Änderung aktualisiert, die wir vorgenommen haben.


_id: 3,
Feld: 'SE',
Kurse: ['Data Science', 'Python', 'IBM'],
Credithours: [2, 9, 5, [3, 1, 2]]

Beispiel Nr. 4: Abfrage des $ addtoSet -Operators in MongoDB, um mehrere Werte hinzuzufügen

Mit dem $ addtoSet können wir in einem Array gleichzeitig mehr als einen Wert hinzufügen, indem wir den $ pro Bediener als Parameter nehmen. Der $ jedem Betreiber wird verwendet, um mehrere Einträge an ein bereitgestelltes Array anzuhängen. Hier haben wir eine Abfrage gegeben. Dann haben wir den $ addtoSet -Betreiber, in dem wir den $ jeden Betreiber eingesetzt haben, um die beiden Werte "7" und "3" im Bereich "Credithours" hinzuzufügen.

db.Kurse.update ("_id": 2, $ addtoSet: "CreditHours": $ jeweils: [7,3]);

In der ausgeführten Abfrage wurde die Bestätigungsausgabe angezeigt, die angibt, dass die Werte in das übereinstimmende Dokument eingefügt werden.


Anerkannt: wahr,
Eingeklagte: NULL,
MatchedCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Die beiden Array -Elemente "7" und "3" sind im Feld Array "Credithours" beigefügt.


_id: 2,
Feld: 'CS' ',
Kurse: ['Python', 'Networking', 'Computing', 'Accounts'],
Credithours: [8, 4, 2, 7, 3]

Beispiel Nr. 5: Abfrage des $ addtoSet -Operators in MongoDB, um den vorhandenen Wert hinzuzufügen

Wenn der Array -Wert bereits vorhanden ist, versuchen wir, diesen Wert erneut im Feld einzufügen, der $ adsetto -Operator tut nichts. Um es anders auszudrücken, addt $ addtoset nur einen Wert, wenn es noch nicht existiert. Dort haben wir eine Abfrage in der Hülle des MongoDB gegeben, bei der wir die update () -Methode verwendeten. In der update () -Methode haben wir die Bedingung übergeben, dass das Dokument das "_id" entspricht "1" entspricht. Danach haben wir den $ addtoSet -Operator bezeichnet, der das Feld „Kurse“ mit dem Parameterwert „Datenbank“ „Addition“ belegt, nimmt das Feld „Kurse“ an. Die „Datenbank“ ist bereits im angegebenen Dokument vorhanden, sodass der $ addtoSet -Bediener diesen Wert nicht aktualisiert.

db.Kurse.aktualisieren(
_id: 1,
$ addtoSet: "Kurse": "Datenbank"
)

Wir können sehen, dass die Option „modifiedCount“ einen "0" -Swert hat, der zeigt, dass das Dokument nicht geändert wird.


Anerkannt: wahr,
Eingeklagte: NULL,
MatchedCount: 1,
ModifiedCount: 0,
UpsertedCount: 0

Das übereinstimmende Dokument wird auch unten überprüft, um anzuzeigen, dass bereits vorhandene Werte vom $ addtoSet -Operator nicht erneut hinzugefügt werden können.


_id: 1,
Feld: 'es' '',
Kurse: ['Webentwicklung', 'Datenbank', 'Python'],
Credithours: [5, 2, 7, 3]

Abschluss

Im Artikel dreht sich alles um die Diskussion des MongoDB $ addtoset -Operators. Wir haben den $ addtoSet -Betrieb in der MongoDB -Update -Abfrage gesehen. Das erste Beispiel ist, dass $ Addtoset -Operator den eindeutigen Wert im Array des Dokuments anhält. Wir haben dann das Feld ohne Existenz mit dem $ addtoset-Operator hinzugefügt. Das Neue Array ist ebenfalls an das bereits angegebene Array beigefügt. Danach haben wir das Array mit mehreren Einträgen angehängt, und dann haben wir versucht, den doppelten Wert in das Array mit dem $ addtoSet -Operator einzufügen.