

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# \$1elemMatch
<a name="elemMatch"></a>

`$elemMatch`Operator di Amazon DocumentDB digunakan untuk menanyakan bidang array dan mengembalikan dokumen di mana setidaknya satu elemen dalam array cocok dengan kriteria yang ditentukan. Operator ini sangat berguna ketika Anda memiliki struktur data yang kompleks dengan array bersarang atau dokumen yang disematkan.

Perencana versi 2.0 menambahkan dukungan indeks untuk`$elemMatch`.

**Parameter**
+ `field`: Bidang array untuk query.
+ `query`: Kriteria untuk mencocokkan dengan elemen array.

 

**Menggunakan `$elemMatch` dalam `$all` ekspresi**

Lihat [Menggunakan `$elemMatch` dalam `$all` ekspresi](functional-differences.md#functional-differences.elemMatch) batasan mengenai penggunaan `$elemMatch` operator dalam sebuah `$all` ekspresi.

## Contoh (MongoDB Shell)
<a name="elemMatch-examples"></a>

Contoh berikut menunjukkan bagaimana menggunakan `$elemMatch` operator untuk menemukan dokumen di mana `parts` array memiliki setidaknya satu elemen yang cocok dengan kriteria yang ditentukan.

**Buat dokumen sampel**

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

**Contoh kueri**

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

**Keluaran**

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

## Contoh kode
<a name="elemMatch-code"></a>

Untuk melihat contoh kode untuk menggunakan `$elemMatch` perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

------
#### [ 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()
```

------