$elemMatch - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$elemMatch

L'$elemMatchoperatore in Amazon DocumentDB viene utilizzato per interrogare un campo array e restituire documenti in cui almeno un elemento dell'array corrisponde ai criteri specificati. Questo operatore è particolarmente utile quando si dispone di strutture di dati complesse con array annidati o documenti incorporati.

La versione 2.0 di Planner ha aggiunto il supporto per gli indici per. $elemMatch

Parametri

  • field: Il campo dell'array da interrogare.

  • query: I criteri da confrontare con gli elementi dell'array.

 

Utilizzo $elemMatch all'interno di un'$allespressione

Vedi $allUtilizzo all'$elemMatchinterno di un'espressione le limitazioni relative all'uso dell'$elemMatchoperatore all'interno di un'$allespressione.

Esempio (MongoDB Shell)

L'esempio seguente mostra come utilizzare l'$elemMatchoperatore per trovare documenti in cui l'partsarray ha almeno un elemento che corrisponde ai criteri specificati.

Crea documenti di esempio

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 }] } ]);

Esempio di interrogazione

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

Output

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

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo del $elemMatch comando, scegliete la scheda relativa alla lingua che desiderate utilizzare:

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()