从mongodb c获取对象#
问题描述:
你好,我想查询我的数据库来获取对象。我遵循了一个指南,似乎每个人都只是在整个集合中使用一个foreach,这是它应该如何完成的?从mongodb c获取对象#
public void asd()
{
MongoClient _client = new MongoClient();
IMongoDatabase _database = _client.GetDatabase("BlogDB");
IMongoCollection<Blog> collection = _database.GetCollection<Blog>("Blog");
var filter = new BsonDocument();
var result = collection.Find(filter)
.Project(Blog => Blog.Posts)
.ToList();
foreach (Posts post in result.FirstOrDefault())
{
if (post.postid == postid)
{
//Do something with post E.g post.myfunction();
}
}
}
是否没有办法从查询中获取特定帖子?
我试图使用过滤器,但collection.Find(过滤器)仍然返回一个集合与我的整个bsondocument。
答
您可以使用下面的代码
public Posts Get(int id)
{
var builder = Builders<Posts>.Filter;
var query = builder.Eq(x => x.postid, id);
return collection.Find(query).SingleOrDefaultAsync().Result;
}
答
如何简化代码点点。既然你需要一个匹配的文件,
更换
var result = collection.Find(filter)
.Project(Blog => Blog.Posts)
.ToList();
foreach (Posts post in result.FirstOrDefault())
{
if (post.postid == postid)
{
//Do something with post E.g post.myfunction();
}
}
随着
var post = collection.Find(filter)
.Project(Blog => Blog.Posts)
.Limit(1)
.FirstOrDefault();
如何从收集博客返回一个帖子? 如果我将我的收藏更改为 IMongoCollection collection = _database.GetCollection (“Blog”); 它编译,但我得到null作为参考.. –
Jacob