【问题标题】:Rename mongo collection in Go using mgo or bson?使用mgo或bson在Go中重命名mongo集合?
【发布时间】:2015-03-15 15:55:35
【问题描述】:

我想在我的 Go 应用中重命名一个 mongo 集合。我正在使用 mgo 驱动程序,它没有定义的方法来执行此操作。有谁知道查询将使用 bson 吗?这是我想在 Go 中实现的命令:http://docs.mongodb.org/manual/reference/command/renameCollection/

【问题讨论】:

    标签: mongodb go bson mgo


    【解决方案1】:

    我没有使用过 mgo,但这看起来正是您想要运行原始查询的内容。

    http://godoc.org/labix.org/v2/mgo#Session.Run

    直接进入mongo:

    db.adminCommand({renameCollection:'yourdb.yourcollection', to:'yourdb.yournewcollection'})
    

    使用mgo:

    session.Run(bson.D{{"renameCollection", "yourdb.yourcollection"}, {"to", "yourdb.yournewcollection"}})
    

    【讨论】:

    • 嗯,好的。所以第二个几乎可以工作。但是,根据 Mongo 规范,我显然只能在 admin 数据库上运行此命令。我的应用程序创建了一个包含许多集合的单独数据库,我可能需要重命名其中的任何一个。这是否意味着只要我的应用使用了一个不叫 admin 的数据库,我就无法运行这个命令?
    • admin 数据库是 mongo 内部的一个特殊数据库。这是 mongo 存储管理设置的地方,比如用户和他们可以访问的内容。它不是默认创建的(afaik),只需要您可以访问它来运行管理命令。示例:docs.mongodb.org/manual/tutorial/add-user-administrator
    猜你喜欢
    • 2012-08-18
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2021-07-15
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多