ief*_*fpw 5 mongodb mongodb-.net-driver
我正在使用最新版本的驱动程序和MongoDB数据库2.6,我曾使用以下代码创建用户:
MongoUser _user1 = new MongoUser("username", "password", false);
MongoDatabase.AddUser(_user1);
Run Code Online (Sandbox Code Playgroud)
现在可以说MongoDatabase.AddUser()通过显示以下信息而被弃用:
...已过时:使用新的用户管理命令'createUser'或'updateUser'."
这个新的用户管理命令在哪里?如何使用新的MongoDB C#驱动程序创建用户?
小智 5
对于有兴趣使用C#v2.0.1驱动程序和MongoDB v3.0.6创建用户的用户,请使用以下命令:
var client = new MongoClient(connectionString);
var database = client.GetDatabase("database_to_create_user_in");
var user = new BsonDocument { { "createUser", "fred" }, { "pwd", "some_secure_password" }, { "roles", new BsonArray { new BsonDocument { { "role", "read" }, { "db", "database_to_create_user_in" } } } } };
await database.RunCommandAsync<BsonDocument>(user);
Run Code Online (Sandbox Code Playgroud)
我在 GitHub 存储库上的最新代码上搜索了“createUser”: https://github.com/mongodb/mongo-csharp-driver/search ?q=createUser&ref=cmdform
在撰写本文时,对“createUser”的唯一引用是在这里
然而,在这次提交中,该方法已被标记为过时
然而; 仔细检查代码,我看到了这一点:
if (_server.RequestConnection.ServerInstance.Supports(FeatureId.UserManagementCommands))
{
AddUserWithUserManagementCommands(user);
}
else
{
AddUserWithInsert(user);
}
Run Code Online (Sandbox Code Playgroud)
所以,它正在幕后调用所需的方法