如何删除MongoDB一个document中数组的一项

比如,有这样一个document:

{ "_id": "ABCDEFG", memberlist:[  {"name":"tom", "age":10},   {"name":"kate", "age":20} ]}

我想删除这个元素:{"name": "tom", "age":10} , 在mongodb的shell中,可以这样写:

db.XXXXX.update({ "_id" : "ABCDEFG"}, {"$pull": {"memberlist" : {"name": "tom", "age":10}}})

但是,在Golang中应该如何写?(使用mgo driver)尝试了下面的语句,总是返回error,not found

col := database.C(collection/name)
err := col.Update(bson.M{"_id":"ABCDEFG"}, bson.M{"$pull" : bson.M{"memberlist": bson.M{"name": "tom", "age":10}  }})

共 2 个回复


jimmykuu

试过,可以的,你的错误估计是_id的条件不对。

# 0

qkevin123

杯具了,范了一个无比低级的错误,col := database.C(collection/name) 这行代码,把 collection/name 写成其它的collection了,折腾了三小时,唉!

# 1