我经常写一个像这样的meteor.update函数:
Books.update(bookId, {"author": "George"});
注意我的代码中的错误:没有$set
运算符 - meteor会将对象参数解释为整个文档更新,并将整个书记录替换为我打算作为修饰符的内容。
有没有办法在服务器端关闭整个文档更新?
注意:我必须在服务器端编写此修饰符的一个原因是我无法在客户端编写子数组修饰符:
Books.udpate({
_id: bookId,
"readers._id": "123"
}, {
$set: {
"readers.$.name": "Ralph Reader"
}
})
答案 0 :(得分:0)
无法通过设计在客户端上实现meteor中的整个文档更新。
这只能在服务器上完成,可能通过方法调用完成。
答案 1 :(得分:0)
我确实误读了这个问题
如果你想阻止整个文档的更新,那么在这种情况下,如果你可以使用 simple-schema ,除了在你的文档中添加模式之外,这是有用的,也不会允许这样的整体-document-update甚至在服务器上更新错误,它总是需要一些操作符,例如$set
。