错误:无法将$ push修饰符应用于Meteorjs中的非数组

时间:2012-10-03 16:42:53

标签: meteor

这是一个将字典添加为主文档的子项的功能。

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    Item.update({_id:id},{$push:{'subItemsList':data}});
  }
};

我验证了传递的数据,并且是一个有效的主文档,是一个子项数据。

data = {num:1, value: 'Subitem1'};

昨天使用最新版本的meteor(0.4.2)工作正常,但今天我在javascript控制台收到此消息:

Error: Cannot apply $push modifier to non-array

我创建并设置了一个新项目,但我仍然保持不变。

2 个答案:

答案 0 :(得分:1)

感谢劳埃德,尼斯的解决方法并感谢javascript速成课程(我是一个初学者),但我找到了解决方案:(注意“$ push”)

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    Item.update({_id:id},{"$push":{'subItemsList':data}});
  }
};

答案 1 :(得分:0)

试试这个:

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    s.subItemsList = s.subItemsList || [];
    s.subItemsList.push(data);
    Item.update(id, s);
  }
};