db.test.find();
{
_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: [
{
"aa": 10,
"data": "test"
},
{
"aa": 1,
"data": "test"
}
]
}
db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}})
预期结果:
{_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: {
"aa": 1,
"data": "test"
}
Pertanyaan yang sepadan dengan dokumen terbenam, anda juga boleh bertanya secara langsung, seperti:
Sepadan dengan pelaksanaan pertanyaan anda di atas:
db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), senarai: {'$elemMatch': {'aa': 1}}},{"list.$":1}).cantik( )
Pertama sekali, jika anda menggunakan mongodb, anda mesti faham bahawa mongodb ialah nosql
Kemudian, koleksi mongo menyimpan dokumen
Akhir sekali, anda mesti tahu bahawa nilai yang dikembalikan oleh find mestilah koleksi dokumen, yang merupakan tatasusunan
Jadi apa yang anda katakan pada dasarnya mustahil untuk dicapai
Hanya isikan syarat pertanyaan yang anda perlukan untuk mencari. Untuk butiran lanjut, sila semak laman web rasmi mongodb
Gunakan operator $ untuk mengembalikan satu atau lebih, tidak mungkin