首页 > 解决方案 > 在 C# Linq 驱动程序中查询 MongoDB 'ObjectId'

问题描述

我正在尝试通过默认 MongoDB 对象 ID 检索文档。

根据我之前找到的答案,我目前正在使用下面的代码

var collection = _databaseContext.getCollection();
var recordIDFilter = Builders<BsonDocument>.Filter.Eq("id", ObjectId.Parse(recordId));
var query = collection.Find<BsonDocument>(recordIDFilter);

var result = query.ToList();

记录了所有变量后,我确信查询正在正确构建。但是,当针对 MongoDB 数据库运行代码时,结果被返回为 null,尽管我提供了一个我知道在数据库中的对象 ID

代码片段中是否有任何明显缺失的内容,或者是否有任何故障排除可以建议确定代码未返回结果的原因

标签: c#mongodblinq

解决方案


通过使用 LINQ,可以更轻松地从 mongo 获取对象。您只需要做一件事,就是将集合转换为可查询。

示例(基于您的代码):

var collection = _databaseContext.getCollection();
var result = collection.AsQueryable().FirstOfDefault(c => c.id == recordId);

推荐阅读