如何使用GO lang删除存储在mongodb中的集合中的所有项目?
在mongo控制台中我可以使用:
db.mycollection.remove({})
其中空括号{}表示所有文档模式。
在GO lang中(我使用" gopkg.in/mgo.v2"以及" gopkg.in/mgo.v2/bson")有方法:
sess.DB("mydb").C("mycollection").Remove(...)
or
sess.DB("mydb").C("mycollection").RemoveAll(...)
但是它们都需要实现选择器的参数。例如,选择器可以是bson地图
bson.M{"id": id}
但我想删除所有元素,而不是特定元素。
答案 0 :(得分:5)
请参阅MongoDB文档: http://docs.mongodb.org/manual/tutorial/remove-documents/
要删除给定集合的所有文档,只需使用空选择器调用RemoveAll即可。只是传递nil作为参数应该可以正常工作:
sess.DB("mydb").C("mycollection").RemoveAll(nil)
请务必检查返回的对象。
答案 1 :(得分:1)
根据@DidierSpezia回复使用C("mycollection").RemoveAll
。但是,由于JSON specification区分了“空对象”{}
和“null”,因此您应该使用空的map[string]interface{}
或bson.M
。
sess.DB("mydb").C("mycollection").RemoveAll(bson.M{})