如何在 C# 中查找 Bson 类型为 mongo 的文档
How to find a document with Bson type in mongo in c#
我想在 MongoDb 中使用 C# 中的驱动程序查找具有指定用户名的角色详细信息。
我不想使用任何构建器或 linq 方法。
我试过这个来插入一个 Bson 文档并且成功了。
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collec = database.GetCollection<BsonDocument>("user");
var documnt = new BsonDocument{
{"username", txtUsername.Text},
{"password", txtPassword.Password}
};
var check_count = collec.CountDocuments(documnt);
但是当我尝试使用此代码查找具有用户名的角色时,它不起作用:
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collec = database.GetCollection<BsonDocument>("user");
var documnt = new BsonDocument{
{"username", "admin"},
{"role", 1}
};
var role = collec.Find(documnt);
txtTestRole.Text = role.ToString();
我得到这个作为输出:
enter image description here
您必须具体化查询。
查询单条记录时,可以使用IAsyncCursorSourceExtensions.SingleOrDefault Method.
或者您可以参考IFindFluent
(Extension methods section)到select最适合您的方法。
接下来,从返回BsonDocument
到select显示值的特定字段。
var user = collec.Find(documnt)
.SingleOrDefault();
if (user == null)
{
// Handle user not exist
return;
}
txtTestRole.Text = user["role"].ToString();
我想在 MongoDb 中使用 C# 中的驱动程序查找具有指定用户名的角色详细信息。 我不想使用任何构建器或 linq 方法。
我试过这个来插入一个 Bson 文档并且成功了。
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collec = database.GetCollection<BsonDocument>("user");
var documnt = new BsonDocument{
{"username", txtUsername.Text},
{"password", txtPassword.Password}
};
var check_count = collec.CountDocuments(documnt);
但是当我尝试使用此代码查找具有用户名的角色时,它不起作用:
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collec = database.GetCollection<BsonDocument>("user");
var documnt = new BsonDocument{
{"username", "admin"},
{"role", 1}
};
var role = collec.Find(documnt);
txtTestRole.Text = role.ToString();
我得到这个作为输出: enter image description here
您必须具体化查询。
查询单条记录时,可以使用IAsyncCursorSourceExtensions.SingleOrDefault Method.
或者您可以参考IFindFluent
(Extension methods section)到select最适合您的方法。
接下来,从返回BsonDocument
到select显示值的特定字段。
var user = collec.Find(documnt)
.SingleOrDefault();
if (user == null)
{
// Handle user not exist
return;
}
txtTestRole.Text = user["role"].ToString();