Untuk mencari kunci di dokumen bersarang, Anda perlu mengulangi bidang dokumen secara rekursif, Anda dapat melakukannya di JavaScript dengan bantuan $where metode di MongoDB Kueri di bawah ini akan mencari jika ada nama kunci dalam dokumen dan subdokumennya.
Saya telah memeriksa ini dengan contoh yang Anda berikan, dan itu berfungsi dengan baik.
db.getCollection('test').find({ $where: function () {
var search_key = "lev3_field2";
function check_key(document) {
return Object.keys(document).some(function(key) {
if ( typeof(document[key]) == "object" ) {
if ( key == search_key ) {
return true;
} else {
return check_key(document[key]);
}
} else {
return ( key == search_key );
}
});
}
return check_key(this);
}}
);