使用meteor.js从MongoDB中检索数字数组

时间:2015-02-01 08:26:54

标签: javascript mongodb meteor

如何使用meteor.js从MongoDB Collection Object中正确检索数字数组? 在代码中,我的alert(temp)假设输出一个加起来的数字,如5.95 + 5.95 + 5.95 = 17.85,但输出为0[object Object][object Object][object Object][object Object][object Object][object Object][object Object],这意味着我没有正确地将对象转换为数字格式。请告诉我如何将对象转换为可以添加它们的数字。

Tasks = new Mongo.Collection("tasks");
if (Meteor.isClient) {

Template.price6.events({
 'click a': function () {            // in my page, i clicked this multiple times to insert 3 time 5.95 into the Mongodb object.
    Tasks.insert({
            text: 5.95,            
            createdAt: new Date() // current time
    });
  }
});
Meteor.methods({
  GetTotal: function () {
     var postsArray = Tasks.find().fetch(); // it will fetch the numbers into an array according to the meteor.js doc
     var temp = 0.00;
     for    (index = 0; index < postsArray.length; index++) {
            temp += postsArray[index];
     }
     alert(temp);//suppose to be a number but the output result is weird 0[object][object].....
  },  
});

}

1 个答案:

答案 0 :(得分:0)

事件处理程序插入到Tasks集合对象中,如下所示:

{
  text: 5.95,            
  createdAt: new Date() // current time
}

当您回溯记录时,&#34;文本&#34; (如果您只在该属性中存储数字,这是一个误导性的名称)将是Tasks.find().fetch()数组的每个元素的关键,因此请在您的代码中添加.text

for (index = 0; index < postsArray.length; index++) {
  temp += parseFloat(postsArray[index].text);
}