Нужна помощь с запросом Mongo на основе значения атрибута subdocument, но также и подавления этого атрибута поддокумента, появляющегося в результатах.Проектирование поддокума MongoDB
Вот мои пользовательские объекты:
{
"username" : "abc",
"emails" : [
{
"address" : "[email protected]",
"default" : true
},
{
"address" : "[email protected]",
"default" : false
}
]
},
{
"username" : "xyz",
"emails" : [
{
"address" : "[email protected]",
"default" : false
},
{
"address" : "[email protected]",
"default" : true
}
]
}
Моя цель состоит в том, чтобы получить следующий результат (с «emails.default»: правда, но без «emails.default» атрибут появляется в результатах):
{
"username" : "abc",
"emails" : [
{
"address" : "[email protected]",
}
]
},
{
"username" : "xyz",
"emails" : [
{
"address" : "[email protected]",
}
]
}
Использование $ позиционную оператора:
collection.find({"emails.default":true}, {"username":1,"emails.$":1})
я получаю правильные поддокументы электронной почты в ар груша, но я все еще получаю «emails.default» атрибут обратно:
{
"username" : "abc",
"emails" : [
{
"address" : "[email protected]",
"default" : true
}
]
},
{
"username" : "xyz",
"emails" : [
{
"address" : "[email protected]",
"default" : true
}
]
}
и по какой-то причине, когда я использую это заявление:
collection.find({"emails.default":true}, {"username":1,"emails.address":1})
я получаю следующий результат (как если бы запрос часть заявления была проигнорирована)
{
"username" : "abc",
"emails" : [
{
"address" : "[email protected]",
},
{
"address" : "[email protected]",
}
]
},
{
"username" : "xyz",
"emails" : [
{
"address" : "[email protected]",
},
{
"address" : "[email protected]",
}
]
}
Помогите оценить, спасибо заранее.