从mongoDB获取字段值并分配给var给出undefined

时间:2015-10-14 07:47:41

标签: javascript meteor

我正在使用MeteorJS并尝试从MongoDB获取字段的值并分配给变量。但是当想要打印到控制台时,它会一直“未定义”。它在HTML模板中工作正常,但我需要将值存储在.js文件中的var。

var num = ButtonsList.find({_id:'ZcLkjSwNGTpgHkoeq'});
    var n = num.button1;
    console.log("button number is: "+n);

如果我希望它们在浏览器中输出,下面的代码可以正常工作。它使用{{}}命名空间输出html中的按钮编号。但正如我所说,我需要将值存储在变量中。

ButtonsList = new Meteor.Collection('list');

Template.theList.helpers({
'buttons': function(){
    //return ButtonsList.find().fetch();
    return ButtonsList.find('ZcLkjSwNGTpgHkoeq');
}
});

2 个答案:

答案 0 :(得分:2)

ButtonsList.find()返回一个光标。

ButtonsList.find().fetch()返回一组按钮。

ButtonsList.findOne()返回将返回一个按钮。

ButtonsList.findOne().fieldName将返回找到的按钮的字段fieldName

它与{{#each}}模板块助手一起使用的原因是each块知道如何迭代游标。

答案 1 :(得分:1)

你使用Find,这是不是意味着你得到多个记录?你不应该使用FindOne吗?否则你将获得一个对象数组,这意味着你必须使用num [i] .button1来获取值。