Mongo 使用过滤器按 ID 查找集合

Mongo Collection Find By Id with Filter

要从 mongo 集合中查找一项,我正在尝试对集合应用过滤器和。但是出现如下编译错误

此代码取自官方mongodb文档

var filter = Builders<BsonDocument>.Filter.Eq("_id", id);
var result = _collection.Find(filter);

Builder 的通用类型应与集合的通用类型相同。在你的例子中,集合应该有 BsonDocument 类型。

var _collection = database.GetCollection<BsonDocument>("name");
var filter = Builders<BsonDocument>.Filter.Eq("_id", id);
var result = _collection.Find(filter);

当“_id”是 BsonType.ObjectId 时,您需要像这样使用 ObjectId.Parse:

var _collection = database.GetCollection<BsonDocument>("name");
var filter = Builders<BsonDocument>.Filter.Eq("_id", ObjectId.Parse(id));
var result = _collection.Find(filter);