san*_*ndy 7 c# mongodb mongodb-.net-driver
我正在尝试使用Mongo C#Driver获取所有数据库的列表以及相关的连接集合列表.
foreach (string database in server.GetDatabaseNames())
{
var db = client.GetDatabase(database);
var col = ((MongoDatabase)db).GetCollectionNames();
//Do something
}
Run Code Online (Sandbox Code Playgroud)
我能够获取数据库列表,但不能获取集合名称.它没有过去
((MongoDatabase)db).GetCollectionNames();
Run Code Online (Sandbox Code Playgroud)
我可能错过了什么?
这就是我解决这个问题的方法,因为接受的答案对我没有用.
MongoDb版本3.4.0.
C#驱动程序版本2.4.3.23.
public List<string> GetCollections()
{
List<string> collections = new List<string>();
foreach (BsonDocument collection in _database.ListCollectionsAsync().Result.ToListAsync<BsonDocument>().Result)
{
string name = collection["name"].AsString;
collections.Add(name);
}
return collections;
}
Run Code Online (Sandbox Code Playgroud)
MongoDB 2.6版
mongodb-csharp驱动程序:2.1.1
尝试:
//user: root pwd:pwd dbName:admin
try
{
var client = new MongoClient("mongodb://root:pwd@localhost/admin");
var db = client.GetDatabase("admin");
foreach (var item in db.ListCollectionsAsync().Result.ToListAsync<BsonDocument>().Result)
{
Console.WriteLine(item.ToString());
}
} catch (Exception ex)
{
throw ex;
}
Run Code Online (Sandbox Code Playgroud)
重要提示:用户“ root”必须存在于数据库中
在cmd上以管理员身份
C:\yourMongoServer\bin>mongo.exe --port 27017
use admin
db.createUser(
{
user: "root",
pwd: "pwd",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11625 次 |
最近记录: |