Apakah mungkin melakukan OR di $ match?
Maksud saya seperti ini:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Apakah mungkin melakukan OR di $ match?
Maksud saya seperti ini:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Jawaban:
Dalam kasus ini, di mana Anda $or
-ing bidang yang sama , para $in
operator yang akan menjadi pilihan yang lebih baik, juga karena meningkatkan keterbacaan:
$match: {
'author': {
$in: ['dave','john']
}
}
Menurut dokumen MongoDB, penggunaan $in
disarankan dalam kasus ini:
$ atau versus $ in
Saat menggunakan $ atau dengan <expressions> yang merupakan pemeriksaan kesetaraan untuk nilai bidang yang sama, gunakan operator $ in sebagai ganti operator $ or.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in