使用 LINQ 查询基本 BSON,仅知道键和值



我有MongoDB集合,我想从中查询只知道键名称的文档。

我不能使用硬编码的基类,因为键的数量会在运行时随时间而变化。但是作为用户,我会知道它们的名字。

我尝试这样做:

var collection = database.GetCollection<BsonDocument>(mongoCollectionName);
List<BsonDocument> list = (from c in collection.AsQueryable<BsonDocument>()
where c.GetElement("serial").Value == 1
select c).ToList(); 

但是有了它,我得到了{文档}。GetElement("serial"(.不支持值

那么有没有办法使用 linq 来查询基本的 BSON?

谢谢!

只需使视图模型与MongoDB中的属性相同即可。 并且要获取值为 1 的串行列,只需这样做,

public class ViewModel {
.... model Properties goes here
}
var SerialNo = 1;
var collection = mongoDatabase.GetCollection<ViewModel>("name of your collection");
var builder = Builders<ViewModel>.Filter;
builder.Eq(x => x.serial, SerialNo );

有必要使用 LINQ 吗?我的意思是你不可能做这样的事情?

var collection = database.GetCollection<BsonDocument>(mongoCollectionName);
List<BsonDocument> list = collection.Find(Builders<BsonDocument>.Filter.Eq("serial", 1)).ToList();

甚至将其转换为字典。

最新更新