如何对MongoDB中集合中的所有文档应用更新功能(使用mgo)?

如何对MongoDB中集合中的所有文档应用更新功能(使用mgo)?,mongodb,go,mgo,Mongodb,Go,Mgo,我在MongoDB中模拟了一个有很多关系的团队,该团队有一组学生作为其中一个领域 删除学生时,我希望查看所有组,并且对于其组中包含已删除学生的每个组。学生,从数组中删除已删除学生 要从数组中删除已删除的学生,我有一个助手函数removietem,我想使用它 将此函数应用于集合中所有记录的“Mongo”方式是什么?或者我应该返回所有组,然后遍历每个组并在字段上执行操作。类似这样的内容(在使用mgo库的Go中) 我认为仍然不可能根据条件执行单个操作来更新数组中的选定元素。然而,在开始迭代之前,您可以

我在MongoDB中模拟了一个有很多关系的团队,该团队有一组学生作为其中一个领域

删除学生时,我希望查看所有组,并且对于其组中包含已删除学生的每个组。学生,从数组中删除已删除学生

要从数组中删除已删除的学生,我有一个助手函数removietem,我想使用它

将此函数应用于集合中所有记录的“Mongo”方式是什么?或者我应该返回所有组,然后遍历每个组并在字段上执行操作。类似这样的内容(在使用mgo库的Go中)


我认为仍然不可能根据条件执行单个操作来更新数组中的选定元素。然而,在开始迭代之前,您可以稍微限制您的结果

groupsToBeUpdated := groups.Find(bson.M{"students": bson.M{"$elemMatch": bson.M{"deleted_student": true}}})
从这里您可以迭代,但是我会将您的db资源注入RemoveItem方法,以便它可以在那里进行更新。这允许您同时更新文档。请参见我的要点,了解工人示例:或在操场上:

编辑:此外,如果您设置了一个接口,该接口也保存了您的db资源,那么您就可以使用RemoveStudents()方法。该方法需要的所有内容都可以通过组结构访问

groupsToBeUpdated := groups.Find(bson.M{"students": bson.M{"$elemMatch": bson.M{"deleted_student": true}}})