Я не знаю простой способ сделать то, что вы хотите.
В вашем случае я бы изменил способ вставки ваших документов в MongoDB:
db.test.insertMany ([
{"_id": 1, "name": "Jimmy", "lovedBy": {"mom": true}},
{"_id": 2, "name": "Andrew", "lovedBy": {"mom": false}},
{"_id": 3, "name": "Nicholas", "lovedBy": {"mom": true}},
{"_id": 4, "name": "Sarah", "lovedBy": {"dad": true}}
]);
Тогда вы могли бысделайте запрос следующим образом:
db.test.find({"lovedBy.mom" : {$exists: true}});
Важно всегда иметь структуру документа, которая позволяет запрашивать информацию более простым способом.
Хотя MongoDB позволяет вам иметь гибкую структуруЯ бы не рекомендовал использовать для каждого документа документы с уникальными полями.
Не имеет смысла, чтобы у каждого документа было уникальное поле, и вы хотите искать дочерние поля этих уникальных полей.
Таким образом, вы будете только мешать своей работе.