Meteor.call删除客户端和服务器

问题描述:

之间的所有未定义的属性我有以下电话:Meteor.call删除客户端和服务器

Meteor.call('updateDoc', id, obj);

与updateDoc定义为:

Meteor.methods({ 
    updateDoc(id, doc) { 
     MyCollection.update(id, {$set: doc}); 
    } 
}); 

所有与obj是

{ 
    param1: undefined, 
    param2: 'defined!' 
} 
调用它

doc收到的结果为

{ 
    param2: 'defined!' 
} 

这意味着在调用和方法触发之间的某个地方,流星“清除”了未定义的属性。

我怀疑他们正在使用JSON.stringify,这就是为什么undefined被删除。

除了使用null而不是undefined(它的工作原理),有没有办法强制流星传递undefined?作为一个方面说明,更新客户端的集合也会导致“丢失”未定义的属性,即在客户端执行此更新实际上只会更新param2,并忽略param1,因此如果param1具有先前的值它会保持不变(而不是作为取消设置为蒙戈2.4以后做)

+0

,而不是不确定的,如果你不想使用*空*,你可以使用空字符串*“”* –

+0

你可以发布你的插入方法让我们看到DB中的文档结构吗?编辑你的代码会更容易,然后 – Luna

尝试改变MyCollection.update(id, {$set: doc});这样

MyCollection.update(id, { 
    $set: {docYouWantToChange: doc} 
}); 
+0

不知道我明白什么会进入docYouWantToChange – TheZuck