2

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

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

我验证传递的数据并且是有效的主文档 id 子项数据。

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

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

Error: Cannot apply $push modifier to non-array

我创建并设置了一个新项目,但我仍然得到相同的结果。

4

2 回答 2

1

感谢 Lloyd,很好的解决方法并感谢 javascript 速成课程(我是初学者),但我找到了解决方案:(注意“$push”)

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    Item.update({_id:id},{"$push":{'subItemsList':data}});
  }
};
于 2012-10-04T13:27:56.270 回答
0

尝试这个:

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    s.subItemsList = s.subItemsList || [];
    s.subItemsList.push(data);
    Item.update(id, s);
  }
};
于 2012-10-03T16:47:03.730 回答