如何使用Mongo C#驅動程序列出連接的所有數據庫?MongoDB:獲取所有數據庫的列表?
10
A
回答
17
很容易:
var server = MongoServer.Create("mongodb://localhost/?safe=true");
var databaseNames = server.GetDatabaseNames();
+0
嘿,謝謝,我不知何故錯過了這個方法:) – Andrey 2011-05-24 11:59:37
6
的MongoServer類在2.0.0版本已過時。
您可以使用ListDatabasesAsync
using (var cursor = await client.ListDatabasesAsync())
{
await cursor.ForEachAsync(d => Console.WriteLine(d.ToString()));
}
0
的MongoServer類在2.0.0版本不贊成樹裏指出。如果您不想使用異步,請按以下步驟操作:
var client = new MongoClient("mongodb://" + server_username + ":" + server_password + "@" + server_host + ":" + server_port);
List<MongoDB.Bson.BsonDocument> databases = client.ListDatabases();
只是一件事。 BsonDocument格式具有2個元素:「name」和「sizeOnDisk」。
希望這會有所幫助。
0
我無法驗證,如果給定的DB存不存在與現有的答案,所以這裏是我對此採取:
// extension method on IMongoClient
public static IMongoClient AssertDbExists(this IMongoClient client, string dbName)
{
bool dbFound = false;
using(var cursor = client.ListDatabases())
{
var databaseDocuments = cursor.ToList();
foreach (var db in databaseDocuments)
{
if (db["name"].ToString().Equals(dbName))
{
dbFound = true;
break;
}
}
}
if (!dbFound) throw new ArgumentException("Can't connect to a specific database with the information provided", nameof(MongoSettings.ConnectionString));
return client;
}
,然後用它是這樣的:
// either you get the client with the DB validated or throws
_client = new MongoClient(settings.ConnectionString).AssertDbExists(_dbName);
使用:蒙戈官方C#驅動程序v2.4.4
1
工作液:
MongoClient client = new MongoClient("mongodb://localhost:27017");
using (IAsyncCursor<BsonDocument> cursor = client.ListDatabases())
{
while (cursor.MoveNext())
{
foreach (var doc in cursor.Current)
{
Console.WriteLine(doc["name"]); // database name
}
}
}
相關問題
- 1. NHibernate:獲取所有數據庫表中的所有數據
- 2. 從ReportServer數據庫獲取所有表的列表
- 3. 如何獲取MongoDB中所有數據庫的記錄總數?
- 4. 從Oracle數據庫獲取所有表
- 5. MySQL:獲取某個數據庫中的表中的所有列
- 6. Sharepoint獲取所有列表數據c#
- 7. 從服務器獲取所有數據庫的列表
- 8. 從mysql數據庫獲取所有EmployeeID的下拉列表?
- 9. 獲取數據庫中所有主鍵的列表
- 10. 如何獲取所有數據庫的擴展屬性列表?
- 11. 使用Mongoose獲取所有數據庫的列表
- 12. PHP獲取數據庫中所有關鍵字的列表
- 13. 數據庫獲取所有來自其他數據庫表
- 14. 查詢從Mongodb中獲取與所有列匹配的數據
- 15. 如何獲取數據庫所有表的非索引列的列表?
- 16. 如何使用NodeJs獲取MongoDB中的數據庫列表?
- 17. 訪問:獲取數據庫中具有「unicode壓縮」的所有列的列表
- 18. 如何從數據庫中的所有表中獲取數據
- 19. 如何獲取RethinkDB中所有數據庫次級列表的列表
- 20. 獲取數據庫列表取決於所選的服務器
- 21. 獲取數據庫中的所有ID
- 22. 從數據庫獲取表的列表
- 23. 獲取MongoDB數據庫的計數
- 24. 獲取Firebase列中的所有數據
- 25. 從Cassandra數據庫獲取指定列數據不是所有列數據
- 26. 如何獲取SQL SERVER數據庫中所有表的行數
- 27. 從MySQL數據庫表中獲取列X唯一的所有列
- 28. 從sqlite數據庫獲取所有表名列表到數組android
- 29. Firebase數據庫獲取所有孩子
- 30. 從ResultSet獲取所有數據庫
或者,從shell:'> show dbs' – 2011-05-24 10:40:05
您可以在cmd上使用* show collection *命令.. !! – 2016-10-21 06:39:37