我在Meteor中工作,并尝试仅检索Mongodb文档中一个字段的内容。这个特定的字段是一个数组。我已经阅读了Mongo文档和一些相关的问题,但是我的预测无法正常工作。这就是我所拥有的:
用户使用以下形式添加到数组:
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:
。
任何想法都非常感谢。
尝试访问文档的selections字段,该字段应直接为您提供数组,而不是整个文档:
var selected = Charts.findOne({_id:this._id}, {selections:1, _id:0});
会给你 { "selections": ["A","B"] }
但
var selected = Charts.findOne({_id:this._id}, {selections:1, _id:0}).selected;
会给你所需的数组
["A","B"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句