Я работаю в Meteor и пытаюсь получить только содержимое одного поля в документе Mongodb. Это конкретное поле является массивом. Я прочитал монгольские документы и несколько связанных вопросов, но моя проекция просто не работает. Это то, что у меня есть:Возвращение содержимого одного поля (массива) из документа Mongodb в Meteor
Пользователь добавляет в массив с помощью следующей формы:
Template.One.events({
'submit form': function(e) {
e.preventDefault();
var currentId = this._id
var oneProperties = {
selections: $(e.target).find('[name=selection]').val()
};
Charts.update(currentId, ($addToSet: selections}, function() {});
}
});
Результирующий документ:
{
"_id": "some ID",
"selections": ["A","B"]
}
Обратитесь к массиву в качестве помощника для другого шаблона для доступа к документам из другая коллекция.
Template.Two.helpers({
comps: function() {
var selected = Charts.findOne({_id:this._id}, {selections:1, _id:0});
return Companies.find({ticker: {$in: selected}});
}
});
При запуске запроса Charts.findOne выше, непосредственно в консоли, он возвращает весь документ, без каких-либо ограничений.
Если я заменю Charts.findOne({_id:this._id}, {selections:1, _id:0});
просто ["A","B"]
, тогда все остальное прекрасно работает. Поэтому я знаю, что это сама проекция. Я также не могу сказать, будет ли этот запрос возвращаться, просто нужен массив, который мне нужен, или имя selections:
.
Любые мысли очень оценены.
Вы должны программно создать весь объект: http://stackoverflow.com/questions/22331216/programmatically-updating-fields-in-mongo-and-meteor – fuzzybabybunny