Я публикую некоторые данные в шаблоне Meteor blaze, я хочу вернуть определенные поля, но это сложный объект с вложенными массивами/объектами, поэтому я не уверен, как это сделать
Вот как будет выглядеть пример объекта, который я публикую
{
"_id": "q9i6qAZmKcf6MCPE2",
"name": "Exam Name",
"questions": [
{
"number": 1,
"question": "Question 1",
"multipleTrue": false,
"answers": [
{
"letter": "a",
"answer": "Blah Blah",
"correct": false <--------------
},
{
"letter": "b",
"answer": "Blah Blah",
"correct": true <--------------
}
]
},
{
"number": 2,
"question": "Question 2",
"multipleTrue": false,
"answers": [
{
"letter": "a",
"answer": "Blah Blah",
"correct": true <--------------
},
{
"letter": "b",
"answer": "Blah Blah",
"correct": true <--------------
}
]
}
]
}
Я публикую это со следующим кодом:
return Assessments.find( {"name": "Exam Name"}, {fields: {name: 1, questions: 1}});
Как я могу изменить эту публикацию, чтобы исключить ключ «правильно», который я выделил стрелками?
Массив вопросов > объект вопроса > массив ответов > объект ответов > правильный ключ
$projection
имеет свои ограничения. исх. docs.mongodb.com/v3.2 /reference/operator/projection/positional/, я бы предложил перепроектировать вашу модель данных, и если редизайн невозможен, вы можете удалить свойствоcorrect
перед публикацией. то естьquestions.forEach(function(q){ q.answers.forEach(function(a){delete a. correct}) })
, но это будет стоить производительности. - person distalx   schedule 24.10.2016