

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

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

Baru dari versi 4.0.

Tidak didukung oleh cluster elastis.

`$expr`Operator di Amazon DocumentDB memungkinkan Anda menggunakan ekspresi agregasi dalam bahasa kueri. Ini memungkinkan Anda untuk melakukan perbandingan dan perhitungan yang kompleks pada bidang dalam dokumen, mirip dengan cara Anda menggunakan tahapan pipeline agregasi.

**Parameter**
+ `expression`: Ekspresi yang mengembalikan nilai boolean, memungkinkan Anda untuk melakukan perbandingan dan perhitungan pada bidang dokumen.

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

Contoh berikut menunjukkan bagaimana menggunakan `$expr` operator untuk menemukan semua dokumen di mana `manufacturingCost` bidang lebih besar dari `price` bidang.

**Buat dokumen sampel**

```
db.inventory.insertMany([
  { item: "abc", manufacturingCost: 500, price: 100 },
  { item: "def", manufacturingCost: 300, price: 450 },
  { item: "ghi", manufacturingCost: 400, price: 120 }
]);
```

**Contoh kueri**

```
db.inventory.find({
  $expr: {
    $gt: ["$manufacturingCost", "$price"]
  }
})
```

**Keluaran**

```
{ "_id" : ObjectId("60b9d4d68d2cac581bc5a89a"), "item" : "abc", "manufacturingCost" : 500, "price" : 100 },
{ "_id" : ObjectId("60b9d4d68d2cac581bc5a89c"), "item" : "ghi", "manufacturingCost" : 400, "price" : 120 }
```

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

Untuk melihat contoh kode untuk menggunakan `$expr` 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 collection = db.collection('inventory');

  const result = await collection.find({
    $expr: {
      $gt: ['$manufacturingCost', '$price']
    }
  }).toArray();

  console.log(result);
  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']
    collection = db['inventory']

    result = list(collection.find({
        '$expr': {
            '$gt': ['$manufacturingCost', '$price']
        }
    }))

    print(result)
    client.close()

example()
```

------