【问题标题】:Golang mongodb remove all items from collection [mgo.v2]Golang mongodb 从集合中删除所有项目 [mgo.v2]
【发布时间】:2015-02-28 19:09:11
【问题描述】:

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

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

【问题讨论】:

    标签: mongodb go mgo


    【解决方案1】:

    查看 MongoDB 文档: http://docs.mongodb.org/manual/tutorial/remove-documents/

    要删除给定集合的所有文档,只需使用空选择器调用 RemoveAll。只需将 nil 作为参数传递就可以正常工作:

    sess.DB("mydb").C("mycollection").RemoveAll(nil)
    

    请务必检查返回的对象。

    【讨论】:

    • 谢谢,解决了这个问题。我不认为 N​​il 可以实现选择器;)
    【解决方案2】:

    根据@DidierSpezia 回复使用C("mycollection").RemoveAll。然而,由于JSON specification 区分“空对象”{} 和“null”,您可能应该使用空的map[string]interface{}bson.M

    sess.DB("mydb").C("mycollection").RemoveAll(bson.M{})
    

    【讨论】:

    • 我相信mgo已经为你做了这件事。至少,它可以用于其他方法,例如 Find。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2012-12-18
    相关资源
    最近更新 更多