У меня есть вложенный документ следующего формата:вложенная документ чтения в MongoDB массиве в узле
{
_id: "1234567890",
course: {content: [{ id: 1,
children:[{
id: 1111
},
{
id: 2222
}
{
id: 3333
}]
},
{ id: 2,
children:[{
id: 4444
},
{
id: 5555
}
{
id: 6666
}]
}
]}
}
Я пытаюсь запросить детей на основе идентификатора (course.content.children.id) с использованием следующих код из Node.js:
var query = {
'course.content.children.id': quizId,
};
var option = {
'course.content.children.$': 1,
};
db.getEntityWithOption(tablename,query,option,function(data,err){
res.send(data.course.content[0].children);
});
db.getEntityWithOption является методом обертки поверх db.find методы(). когда я вызываю метод с идентификатором викторины 1, приведенный выше код возврата мне следующий полный массив: `
{ id: 1,
children:[{
id: 1111
},
{
id: 2222
}
{
id: 3333
}]
}
Но мне нужен только конкретный элемент массива с идентификатором 1111 а не массив соперничают. Может ли любой спаситель жизни сказать мне, что я делаю неправильно здесь. ТИА :)
возможно duplidate из http://stackoverflow.com/questions/3985214/retrieve-only-the-queried-element-in-an -объект-массив-in-mongodb-collection – Ben
@Ben Я уже прошел через ссылку, она не работает для меня, и возвращает мне полный набор массивов, как упоминалось. –