2015-01-16 4 views
2

Я хотел бы переименовать коллекцию монго в моем приложении Go. Я использую драйвер mgo, и у него нет определенного метода для этого. Кто-нибудь знает, что запрос будет использовать bson? Это команда, которую я хотел бы реализовать в Go: http://docs.mongodb.org/manual/reference/command/renameCollection/Переименовать коллекцию монго в Go, используя mgo или bson?

ответ

5

Я не использовал mgo, но это похоже на то, что вы хотите запустить сырой запрос.

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

В непосредственно Монго:

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

Использование MgO:

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

Ах ок. Второй работает. Но, согласно спецификациям Mongo, я могу, по-видимому, запустить эту команду только в базе данных admin. Мое приложение создает отдельную базу данных с множеством коллекций, любой из которых мне может понадобиться переименовать. Означает ли это, что до тех пор, пока мое приложение использует базу данных, не называемую admin, я не смогу выполнить эту команду? – dmonay

+1

База данных администратора - это специальная база данных внутри монго. Здесь mongo будет хранить административные настройки, такие как пользователи, и то, к чему у них есть доступ. Он не создается по умолчанию (afaik), просто требуется, чтобы вы могли получить к нему доступ для запуска команд администратора. Примеры: http://docs.mongodb.org/manual/tutorial/add-user-administrator/ –