我先用shell创建了一个数据库ttt,之后我创建了一个集合,并且我insert了数据,我确定集合创建成功,如下图
之后我使用 database.GetCollectionNames())获取不到集合 代码大致如下:
public void Connect(string address, string port, string username, string password)
{
string strconn = String.Format("mongodb://{0}:{1}", address, port);
this.mServer = MongoServer.Create(strconn);
}
这是连接方法,这里我确定连接成功
public MongoDBTree GetMongoDBTree()
{
List<string> dbs = this.mServer.GetDatabaseNames().ToList();
return this.BuildTree(dbs);
}
获取数据库名称
private MongoDBTree BuildTree(List<string> dbs)
{
MongoDBTree tree = new MongoDBTree();
tree.Name = mServer.Instance.Address.ToString();
tree.NodeType = MongoDBTreeNodeType.Server;
tree.Children = new List<MongoDBTree>();
foreach (string db in dbs)
{
MongoDBTree dbTree = new MongoDBTree();
dbTree.Name = db;
dbTree.NodeType = MongoDBTreeNodeType.Docmenu;
dbTree.Children = new List<MongoDBTree>();
MongoDatabase database = this.mServer.GetDatabase(db);
foreach (string item in database.GetCollectionNames())
{
MongoDBTree itemTree = new MongoDBTree();
itemTree.Name = item;
itemTree.NodeType = MongoDBTreeNodeType.Docmenu;
dbTree.Children.Add(itemTree);
}
tree.Children.Add(dbTree);
}
return tree;
}
主要是这个foreach (string item in database.GetCollectionNames())
API是2.2.0 MongoDB是3.2.4 .Net4.5
API中GetDatabase(db)方法如果不存在数据库就会创建一个,这种方法也真是有足奇葩的
不知道有什么问题,求这个大神帮忙