Mongo, как получить определенное поле массива со значением или значением объекта

Итак, у меня есть эти поля монго

"username" : "aaaaaa",
 "emails" : [
 {
 "address" : "[removed_email]m",
 "verified" : false
 }
 ],
 "profile" : {
 "firstname" : "a",
 "lastname" : "a"
 }

я могу сделать

db.users.find({username:'aaaaaa'});

Мой вопрос: как, если я хочу использовать адрес электронной почты или имя профиля?

Кажется, это

db.users.find({email:{firstname:'[removed_email]'}});

но это не сработает. и я не могу использовать

email['address']:'[removed_email]'

или даже

profile:{firstname:'a'} // profile.firstname:'a';

Как я могу получить только их ценность?

1 ответ

Если вы хотите использовать адрес электронной почты для запроса,

db.users.find({'emails.address':'[removed_email]'});

Если вы хотите использовать имя профиля для запроса,

db.users.find({'profile.firstname':'a'});

licensed under cc by-sa 3.0 with attribution.