Я хочу получить массив учетной записи, если запрос найти роль «элиты»Получить конкретное поле Mongoose
я попробовать с
db.users.aggregate(
{ $match : { "account.role" : "Elite" } }
);
Но у меня есть все объекты ...
{
"_id" : ObjectId("7623902143981943"),
"account" : [
{
"role" : "Elite",
"action" : [
"create",
"read",
"update",
"delete"
],
"extra" : {
account:[1,2,3,4]
}
},
{
"role" : "User",
"action" : [
"create",
"read",
"update",
"delete"
],
"extra" : {
account:[10]
}
}
],
}
Могу ли я получить только дополнительный массив (учетная запись: [1,2,3,4]), если это положительный результат запроса? или я должен разобрать полученный объект? (схема очень упрощена, но у меня есть много ролей)
Спасибо, но у меня есть это исключение ошибки: объект спецификации этапа конвейера должен содержать ровно одно поле. ' – Twinsen
Я отредактировал ответ на 'aggregate ({$ match: ..}, {$ project: ...})' вместо 'aggregate ({$ match: .., $ project: ...})' , Ссылка может быть найдена [здесь] (http://docs.mongodb.org/manual/core/aggregation-pipeline/) –
Еще раз спасибо, но в моих результатах у меня есть два дополнительных.экзамена массива Elite и extra.account User. Могу ли я получить только Elite? – Twinsen