GOlang mongodb从收藏中删除所有项目

时间:2015-01-02 12:38:37

标签: mongodb go

如何使用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}

但我想删除所有元素,而不是特定元素。

2 个答案:

答案 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{})