我是mongodb driver.i的新手我试图在2015年8月6日到2015年6月6日之间的两个日期之间过滤文件。这是我的代码
IMongoQuery querySubmissionDateFrom = Query<ReviewMDO>.GTE(m => m.SubmissionData.SubmissionDate,manuscriptFilterDocument.Filter.SubmissionFromDate.Date);
queryFilter.Add(querySubmissionDateFrom);
你可以看到我的manuscriptFilterDocument.Filter.SubmissionFromDate.Date提交的值包含值“06-08-2015 00:00:00”。因为在mongodb日期会自动转换为iso date formate.how我可以将此转换为UTC日期甲酸盐用于比较。
答案 0 :(得分:1)
尝试使用LINQ到MongoDB:
var collection = database.GetCollection<TDocument>("collectionname");\
var query =
from e in collection.AsQueryable<Employee>()
where e.FirstName == "John"
select e;
修改强>
以下是您的代码的等同物:
var collection = database.GetCollection<ReviewMDO>("collectionname");
var query =
from m in collection.AsQueryable<ReviewMDO>()
where m.SubmissionData.SubmissionDate >= querySubmissionDateFrom
select m;
答案 1 :(得分:1)
最后我明白了。我分享了我的答案以供参考。我改变了我的代码
我使用DateTime.SpecifyKind()函数将datetime转换为UTC
IMongoQuery querySubmissionDateFrom = Query<ReviewMDO>.GTE(m => m.SubmissionData.SubmissionDate, DateTime.SpecifyKind(manuscriptFilterDocument.Filter.SubmissionFromDate.Date, DateTimeKind.Utc) );
queryFilter.Add(querySubmissionDateFrom);
答案 2 :(得分:1)
您可以使用Lambda实现此目的
var date = DateTime.Now;
var results = Collection.Find(x => x.SubmissionDate >= date).ToList();
或者使用Builders做同样的事情
var filter= Builders<ReviewMDO>.Filter.Gte(x => x.SubmissionDate, date);
var results = Collection.Find(filter).ToList();