Когда вы запрашиваете коллекцию в MongoDB, по умолчанию она возвращает весь документ, соответствующий запросу.Если хотите, вы можете нарезать его и получить отдельный поддокумент.
Если все, что вам нужно, это участники старше 18 лет, то, вероятно, лучше всего сделать одно из двух:
Храните их в под-документе внутри документа мероприятия, который называется «Over18» или что-то в этом роде.Вставьте их в этот документ (и, возможно, в другой, если хотите), а затем, когда вы запрашиваете коллекцию, вы можете указать базе данных возвращать только вложенный документ «Over18».Недостатком этого является то, что вы храните своих участников в двух разных вложенных документах, и вам придется выяснить их возраст перед вставкой.Это может или не может быть осуществимо в зависимости от вашего приложения.Если вам нужно иметь возможность проверять произвольный возраст (то есть иногда ему 18, а иногда 21 или 25 и т. Д.), Это не сработает.
Запрос коллекции и получение участниковвложенный документ, а затем отфильтруйте его в коде приложения.Несмотря на то, что некоторые люди могут верить, это не страшно, потому что вы не хотите, чтобы ваша база данных выполняла слишком большую работу все время.Выгрузка вычислений в ваше приложение может принести пользу вашей базе данных, поскольку теперь она может тратить больше времени на запросы и меньше времени на фильтрацию.Это приводит к лучшей масштабируемости в долгосрочной перспективе.