Ini adalah perilaku memfilter dokumen tertanam multi level, biasanya filter yang cocok akan mengembalikan seluruh dokumen, bukan subset.
Biasanya positional operator $
digunakan untuk mencocokkan sub dokumen di updates
. Tetapi fitur tersebut belum diterapkan di penentu pengembalian.
Ada masalah yang belum terselesaikan di mongo Dukungan untuk operator posisi ($) di bidang untuk mengembalikan specifier . (Silakan masuk untuk memilih jika Anda benar-benar membutuhkan fitur tersebut)
Jadi Anda harus mendesain ulang skema Anda untuk menangani ini, mungkin seperti ini
db.test.insert({"person" : [ { "id":1, "details" : { "name" : "Aswini", "Age" : 10 }}]})
db.test.insert({"person" : [ { "id":2, "details" : { "name" : "Mahesh", "Age" : 11}}]})
db.test.find({"person.id":1},{'person.details':1})