Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
$expr
Baru dari versi 4.0.
Tidak didukung oleh cluster Elastic.
$exprOperator 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 pipa agregasi.
Operator $eq$lt,$lte,$gt,, dan $gte perbandingan yang ditempatkan dalam $expr operator dapat menggunakan indeks, termasuk indeks pada from koleksi yang direferensikan dalam $lookup tahap.
Batasan
-
Indeks hanya dapat digunakan untuk perbandingan antara bidang dan konstanta, sehingga operan harus diselesaikan menjadi konstanta. Misalnya, perbandingan antara
$adan nilai konstan dapat menggunakan indeks, tetapi perbandingan antara$adan$btidak bisa. -
Indeks multikey, parsi, atau jarang tidak digunakan. Dalam kasus tersebut, kueri kembali ke pemindaian koleksi.
-
Ketika
letoperan diselesaikan ke nilai kosong atau hilang, perbandingan tidak dapat menggunakan pencarian indeks yang ditargetkan. Dalam hal ini, Amazon DocumentDB melakukan pemindaian indeks penuh.
Parameter
-
expression: Ekspresi yang mengembalikan nilai boolean, memungkinkan Anda untuk melakukan perbandingan dan perhitungan pada bidang dokumen.
Contoh (MongoDB Shell)
Contoh berikut menunjukkan cara 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
Untuk melihat contoh kode untuk menggunakan $expr perintah, pilih tab untuk bahasa yang ingin Anda gunakan: