【问题标题】:Mongo Collection Find By Id with FilterMongo Collection 使用过滤器按 ID 查找
【发布时间】:2015-09-04 03:39:11
【问题描述】:

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

此代码取自官方mongodb docs

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

【问题讨论】:

  • 您的项目是否引用了 MongoDB.Driver 2.0.X?
  • @rnofenko 是的,它的参考是 2.0.1.27

标签: c# mongodb mongodb-query


【解决方案1】:

当“_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);

【讨论】:

    【解决方案2】:

    Builder 的泛型类型应与集合的泛型类型相同。在您的案例中,集合应该具有 BsonDocument 类型。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 2018-12-01
      • 2019-06-10
      • 1970-01-01
      • 2014-03-09
      相关资源
      最近更新 更多