Sayangnya, MongoDB tidak mendukung metode kueri semua bidang dengan nilai tertentu. Ada tiket Jira yang meminta peningkatan ini:https://jira.mongodb.org/browse/SERVER-1248 . Jangan ragu untuk berkomentar, memilih, atau mengikuti tiket tersebut.
Sementara itu, cara yang biasa dilakukan adalah dengan mengubah skema MongoDB. Sebagai contoh, Anda akan mengubah skema yang ada:
{"123": "apple", "217": "pear", "179": "orange"}
{"831": "pear", "189": "grapes"}
Dan Anda dapat menyusunnya seperti ini:
{ tags: [
{ cid: "123", value: "apple" },
{ cid: "217", value: "pear" },
{ cid: "179", value: "orange" },
]
}
{ tags: [
{ cid: "831", value: "pear" },
{ cid: "189", value: "grapes" },
]
}
Setelah Anda selesai melakukannya, Anda dapat melakukan kueri berikut untuk menemukan semua dokumen yang diinginkan:
db.docs.find( {'tags.value': "apple" } )
Perhatikan bahwa skema ini memungkinkan Anda untuk mengindeks bidang 'tags.cid' dan 'tags.value', yang tidak dilakukan oleh skema asli Anda.
Saya harap ini membantu.
-William