Mongodb C#按日期时间属性进行筛选
本文关键字:筛选 属性 时间 日期 Mongodb | 更新日期: 2023-09-27 18:20:15
我正在寻找在mongodb中筛选日期-时间字段的方法。这看起来很直接,但我无法在那里的网站或谷歌搜索中找到任何关于这方面的文档。
Bson文档
{
"_id" : ObjectId("560cd175c771472d780aab3c"),
"BDay" : ISODate("2005-12-22T18:00:00.000Z"),
"AddressID" : 987,
"Age" : 58,
"Father" : {
"BDay" : {
"_csharpnull" : true
},
"AddressID" : 0,
"Age" : 31,
"Father" : null,
"ID" : "6e2a9c3b-091a-4171-843e-6cbd0994bfda",
"Income" : 26794.0000000000000000,
"Name" : "YLM66LF3",
"_id" : ObjectId("000000000000000000000000")
},
"ID" : "707080e6-8705-48b1-8471-f7af58be6d11",
"Income" : 5734.0000000000000000,
"Name" : "XVCDFKF8"
}
我的代码如下。
var collection = cdb.GetCollection<BsonDocument>("person");
var bday= new DateTime(2015, 12, 22, 18, 00, 00).ToLocalTime();
var s = BsonValue.Create(beginTime);
var filter = Builders<BsonDocument>.Filter.Gte("BDay", s);
var result = await collection.Find(filter).ToListAsync();
我试过其他方法,但都没有成功。
根据API文件,Filter.Gte
方法的参数为FieldDefinition<TDocument, TField>, TField
。
由于FieldDefinition<TDocument, TField>
是一个抽象类,所以应该有一个子类。
我的Gte
查询示例如下:
(假设您的beginTime
是DateTime
值)
var filter = Builders<BsonDocument>.Filter.Gte(new StringFieldDefinition<BsonDocument, BsonDateTime>("BDay"), new BsonDateTime(beginTime));