使用mgo或bson在Go中重命名mongo集合?

3
1个回答

6
我没有使用过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,我就无法运行此命令? - dmonay
1
管理员数据库是Mongo内部的一种特殊数据库。这里是Mongo将存储用户及其访问权限等管理设置的地方。它不会默认创建(据我所知),但必须能够访问它以运行管理员命令。例如:http://docs.mongodb.org/manual/tutorial/add-user-administrator/ - Daniel Williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接