Javascript Mongo操作员$pull不工作(Meteor.js)

Javascript Mongo操作员$pull不工作(Meteor.js),javascript,mongodb,meteor,Javascript,Mongodb,Meteor,meteor mongo控制台工作: db.projects.update({ _id: "uA2HeAZuggESbocxK"}, {$pull: {views: { _id: 'ufy3XCRQfxarHjbsy'}}}) meteor shell控制台不工作: Projects.update({ _id: "uA2HeAZuggESbocxK"}, {$pull: {views: { _id: 'ufy3XCRQfxarHjbsy'}}}) 第一个可以很好地从数组中移除对象,第二个不行

meteor mongo控制台工作:

db.projects.update({ _id: "uA2HeAZuggESbocxK"}, {$pull: {views: { _id: 'ufy3XCRQfxarHjbsy'}}})
meteor shell控制台不工作:

Projects.update({ _id: "uA2HeAZuggESbocxK"}, {$pull: {views: { _id: 'ufy3XCRQfxarHjbsy'}}})
第一个可以很好地从数组中移除对象,第二个不行。只是静静地,没有错误,什么也不做。 我做错了什么?是否有其他方法可以使用Meteor.methods从Mongo中的数组中删除对象?

试试这个

var idsKeyName = "views";
var arr_views = {};
arr_views[idsKeyName] = { _id: 'ufy3XCRQfxarHjbsy'}; 

db.projects.update({ _id: "uA2HeAZuggESbocxK"}, {$pull: arr_views})

谢谢

这个问题清楚地表明,他能够在meteor mongo控制台中使用$pull。一个有用的答案应该包括meteor shell控制台或meteor.methods方法。你解决了这个问题吗?不幸的是没有。我必须手动编辑数组,然后重新分配它。可能是因为在数组元素的字段中使用了带有自动值的collection2吗?那是我的问题。在autovalue中,您必须区分拉动、插入等情况。这篇文章提供了@NicolaMarcacciRossi描述的更多细节: