c# - 在 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
代码片段中是否有任何明显缺失的内容,或者是否有任何故障排除可以建议确定代码未返回结果的原因
解决方案
通过使用 LINQ,可以更轻松地从 mongo 获取对象。您只需要做一件事,就是将集合转换为可查询。
示例(基于您的代码):
var collection = _databaseContext.getCollection();
var result = collection.AsQueryable().FirstOfDefault(c => c.id == recordId);