Mongodb 为什么更新$set代码会删除整个文档?
救命啊! 我不知道我做错了什么,当我尝试使用$set方法更新现有字段时,整个文档都会被删除 请指出我在代码中的错误:Mongodb 为什么更新$set代码会删除整个文档?,mongodb,meteor,set,mongodb-update,Mongodb,Meteor,Set,Mongodb Update,救命啊! 我不知道我做错了什么,当我尝试使用$set方法更新现有字段时,整个文档都会被删除 请指出我在代码中的错误: recipientsDetails.update({_id: "GCYmFqZbaaYD7DvMZ"}, {$set: {paymentStatus: "Approved"}}); 谢谢你的帮助 代码是正确的。您的recipientsDetails的发布函数可能包含recipientsDetails.find({paymentStatus:“notapproved”})。当然,
recipientsDetails.update({_id: "GCYmFqZbaaYD7DvMZ"}, {$set: {paymentStatus: "Approved"}});
谢谢你的帮助 代码是正确的。您的
recipientsDetails
的发布函数可能包含recipientsDetails.find({paymentStatus:“notapproved”})
。当然,一旦您更新文档,文档将不再满足过滤查询,文档将从客户端消失。您的代码是正确的。请使用工具检查您的mongoDB。将您的本地项目与robomongo连接并更新文档,然后检查文档是否已更新?如果记录已更新,则发布或订阅出现问题此代码是正确的。因此,您可以发布此方法的其余部分,否则将无法解决此问题。@Styx是否可以尝试在浏览器控制台中运行它。即使我复制粘贴并在浏览器控制台中运行它,它也会删除。@JankapunktTemplate.paymentB2C.events({'click}approvedpaymentbutton'(事件,实例){var selectedRecipient=this.\u id;recipientsDetails.update({u id:selectedRecipient},{$set:{paymentStatus:“Approved”})})
是否有订阅在监听文档的更改,尤其是此字段?很好的猜测,但在回答中@SirBT表示文档并没有从集合中消失,而是被替换(而不是更新),所以我不认为这是原因。无论如何,在他提供更多信息之前,我们不会知道更多。结果是一个很好的猜测,干得好@DoctorPangloss