MongoDB im Bediener

MongoDB im Bediener
In diesem Beitrag werden wir diskutieren, wie Sie den $ im Bediener in MongoDB -Datenbanken verwenden können. Mit dem $ im Bediener können wir Dokumente auswählen.

Operatorsyntax

Der folgende Ausdruck definiert die für den $ im Operator verwendete Syntax:

Feld: $ in: [,,…]

Der Bediener vergleicht jeden Parameter mit allen Dokumenten in der angegebenen Sammlung. Es ist wichtig, darauf zu achten, wie dieser Bediener angewendet wird, da er zu Leistungshits führen kann.

MongoDB empfiehlt, die Anzahl der zu scannten Parameter zu begrenzen, um erhebliche Leistungsprobleme zu vermeiden.

Sie können auch andere Funktionen wie Indizes verwenden, um MongoDB bei der Anwendung des $ im Bediener in einer großen Sammlung zu unterstützen.

Praktisches Beispiel

Nehmen wir eine Sammlung mit Real World -Werten, um zu veranschaulichen, wie dieser Bediener verwendet wird. Betrachten Sie die nachstehend gezeigte Stichprobensammlung:

db.CreateCollection ("Shop")
db.Geschäft.InsertMany ([
_id: 0, "product_name": "Apple MacBook Air", "Menge": 100, "Preis": 1199, "Kategorie": ["Tech", "Apple"],
_id: 1, "product_name": "Google Pixel 6a", "Menge": 1000, "Preis": 449, "Kategorie": ["Tech", "Google"],
_id: 2, "product_name": "Apple iPad Air", "Menge": 550, "Preis": 599, "Kategorie": ["Tech", "Apple"],
_id: 3, "product_name": "samsung z fold 4", "Menge": 400, "Preis": 1799, "Kategorie": ["Tech", "Samsung"],
_id: 4, "product_name": "Sony WH-100xm5", "Menge": 800, "Preis": 400, "Kategorie": ["Tech", "Sony"],
]))

Die obige Abfrage erstellt eine Sammlung „Shop“ und fügen Sie Beispieldaten hinzu. Lassen Sie uns nun untersuchen, wie wir den $ im Bediener in einem solchen Dokument verwenden können.

Verwenden des $ im Operator, um passende Dokumente zu finden

Das folgende Beispiel verwendet den $ im Bediener, um alle Dokumente zu finden, in denen die Kategorie entweder "Apple" oder "Samsung" ist.

db.Geschäft.find (Kategorie: $ in: ["Apple", "Samsung"])

In diesem Fall sollte die Abfrage die Dokumente nur mit den Werten „Apple“ oder „Samsung“ im Kategorie -Array zurückgeben.

Ein Beispielausgang ist wie gezeigt:


"_id": 0.0,
"product_name": "Apple MacBook Air",
"Menge": 100.0,
"Preis": 1199.0,
"Kategorie" : [
"Technik",
"Apfel"
]


"_id": 2.0,
"Product_name": "Apple iPad Air",
"Menge": 550.0,
"Preis": 599.0,
"Kategorie" : [
"Technik",
"Apfel"
]


"_id": 3.0,
"Product_name": "Samsung Z Fold 4",
"Menge": 400.0,
"Preis": 1799.0,
"Kategorie" : [
"Technik",
"Samsung"
]

Verwenden des $ im Bedieners zum Aktualisieren von Dokumenten, die einem bestimmten Zustand entsprechen

Wir können den $ im Bediener auch verwenden, um ein Sammel -Update mit updateOne () oder updatemany () Methoden durchzuführen.

Angenommen, dem Shop hat die Apple -Geräte ausgegangen, und wir möchten die Dokumente in einer einzigen Abfrage aktualisieren. Wir können eine Anfrage wie gezeigt ausführen:

db.Geschäft.updatemany (Kategorie: $ in: ["Apple"],
$ set: verfügbar: false
)

Die obige Abfrage aktualisiert die Dokumente, in denen die Kategorie „Apple“ entspricht, und der verfügbare Status für false.

Das resultierende Dokument sollte wie gezeigt aussehen:


"_id": 0.0,
"product_name": "Apple MacBook Air",
"Menge": 100.0,
"Preis": 1199.0,
"Kategorie" : [
"Technik",
"Apfel"
],
"verfügbar": Falsch


"_id": 1.0,
"product_name": "Google Pixel 6a",
"Menge": 1000.0,
"Preis": 449.0,
"Kategorie" : [
"Technik",
"Google"
]


"_id": 2.0,
"Product_name": "Apple iPad Air",
"Menge": 550.0,
"Preis": 599.0,
"Kategorie" : [
"Technik",
"Apfel"
],
"verfügbar": Falsch


"_id": 3.0,
"Product_name": "Samsung Z Fold 4",
"Menge": 400.0,
"Preis": 1799.0,
"Kategorie" : [
"Technik",
"Samsung"
]


"_id": 4.0,
"product_name": "Sony WH-100xm5",
"Menge": 800.0,
"Preis": 400.0,
"Kategorie" : [
"Technik",
"Sony"
]

Wir können sehen, dass jeder Apple -Eintrag ein verfügbares Feld mit dem auf False festgelegten Wert enthält.

Abschluss

In diesem Beitrag haben wir den $ im Bediener in MongoDB -Datenbanken untersucht. Mit diesem Bediener können wir Dokumente auswählen, deren Feldwert mit einem bestimmten Wertesatz in einem Array übereinstimmt.

Danke fürs Lesen!!