$elemMatch - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$elemMatch

Der $elemMatch Operator in Amazon DocumentDB wird verwendet, um ein Array-Feld abzufragen und Dokumente zurückzugeben, bei denen mindestens ein Element im Array den angegebenen Kriterien entspricht. Dieser Operator ist besonders nützlich, wenn Sie komplexe Datenstrukturen mit verschachtelten Arrays oder eingebetteten Dokumenten haben.

Planner Version 2.0 fügte Indexunterstützung für hinzu. $elemMatch

Parameter

  • field: Das abzufragende Array-Feld.

  • query: Die Kriterien, die mit den Array-Elementen verglichen werden sollen.

 

Verwendung $elemMatch innerhalb eines $all Ausdrucks

Einschränkungen in Bezug auf die Verwendung des $elemMatch Operators innerhalb eines $all Ausdrucks finden $elemMatchVerwendung innerhalb eines Ausdrucks $all Sie unter.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $elemMatch Operator verwendet wird, um Dokumente zu finden, bei denen das parts Array mindestens ein Element enthält, das den angegebenen Kriterien entspricht.

Erstellen Sie Beispieldokumente

db.col.insertMany([ { _id: 1, parts: [{ part: "xyz", qty: 10 }, { part: "abc", qty: 20 }] }, { _id: 2, parts: [{ part: "xyz", qty: 5 }, { part: "abc", qty: 10 }] }, { _id: 3, parts: [{ part: "xyz", qty: 15 }, { part: "abc", qty: 100 }] }, { _id: 4, parts: [{ part: "abc", qty: 150 }] } ]);

Beispiel für eine Abfrage

db.col.find({ parts: { "$elemMatch": { part: "xyz", qty: { $lt: 11 } } } })

Ausgabe

{ "_id" : 1, "parts" : [ { "part" : "xyz", "qty" : 10 }, { "part" : "abc", "qty" : 20 } ] } { "_id" : 2, "parts" : [ { "part" : "xyz", "qty" : 5 }, { "part" : "abc", "qty" : 10 } ] }

Codebeispiele

Um ein Codebeispiel für die Verwendung des $elemMatch Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const col = db.collection('col'); const result = await col.find({ parts: { "$elemMatch": { part: "xyz", qty: { $lt: 11 } } } }).toArray(); console.log(JSON.stringify(result, null, 2)); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] col = db['col'] result = list(col.find({ 'parts': { '$elemMatch': {'part': 'xyz', 'qty': {'$lt': 11}} } })) print(result) client.close() example()