Я использую драйвер Withe документ Java, который выглядит следующим образом (реальный тест пример):запрос значение суб документа в MongoDB
{
"_id" : ObjectId("5207fe359b88bfa6f90a82b0"),
"meta_id" : "d6eb1b13-50c7-473f-8348-b5a638a542a0",
"name" : "Fake Name Inc.",
"created" : ISODate("2013-08-11T21:12:21.533Z"),
"members" : {
"5207fe359b88bfa6f90a82af" : [
"Admin",
"User"
]
}
}
Я хочу, чтобы выбрать массив строк в пути " members.5207fe359b88bfa6f90a82af "(который является списком ролей). Я не понимаю, как это сделать. Похоже, что здесь будет работать проекция, но я достаточно доволен Монго, что способ написания проекции не очевиден.
Я могу, конечно, загрузить весь объект или, возможно, даже поле «члены», но я думаю, что мне нужно будет выбрать именно те данные, которые мне нужны.
Итак, есть ли у кого-нибудь представление о том, как будет выглядеть такой запрос?
Примечание: Этот вопрос предполагает, что, возможно, мне нужно изменить структуру документа, чтобы сделать вещи проще: MongoDB - Query by sub-tree
Хм ... Я пытался, но, возможно, мой функциональный тест не смотрел на правильные вещи, так как я не ожидал, что всю структуру в Вернись. Что такое «_id: 0» для проекции? –
@BrillPappin Это исключает поле '_id' в возвращаемом документе, поскольку по умолчанию оно включено. – JohnnyHK
Ах, это имеет смысл. Это будет _id самого документа, который, как я думаю, я читаю, возвращается по умолчанию. –