2015-10-14 106 views
1

我使用MeteorJS並嘗試從MongoDB獲取字段的值並將其分配給變量。但是當想要打印到控制檯時,它總是「未定義」。它在HTML模板中工作正常,但我需要將該值存儲在.js文件中的var中。從mongoDB獲取字段值並分配給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'); 
} 
}); 
+0

寫'console.log(num);'並看看你得到了什麼 –

+0

console.log(num);返回一個[object Object] – Octtavius

回答

2

ButtonsList.find()返回遊標。

ButtonsList.find().fetch()返回一組按鈕。

ButtonsList.findOne()返回將返回一個按鈕。

ButtonsList.findOne().fieldName將返回找到的按鈕的字段fieldName

它與{{#each}}模板塊助手一起工作的原因是each塊知道如何迭代遊標。

1

您使用查找,是否意味着您得到多個reccords回來?你不應該使用FindOne嗎?否則你會得到一個對象數組,這意味着你必須使用num [i] .button1來獲得值。 (編號);

+1

感謝您的回答。它現在有效!看來我沒有指定對象的索引。現在我改變了findOne()並給出了值。謝謝 – Octtavius

相關問題