我在网上Web服务上查询mongo数据库(版本3.4.4)中的文档时遇到一些问题
似乎日期已转换为UniversalTime,我希望避免这种转换。
例如,使用此代码,我想搜索日期为2018年7月9日的文档
MongoClient mongoClient = new MongoClient("mongodb://xxx");
IMongoDatabase database = mongoClient.GetDatabase("mydb");
IMongoCollection<BsonDocument> collection = database.GetCollection<BsonDocument>("mycollection");
DateTime dateFrom = DateTime.Parse("2018-07-09");
DateTime dateTo = DateTime.Parse("2018-07-10");
var query_filter = Builders<BsonDocument>.Filter.And
(Builders<BsonDocument>.Filter.Gte("utcData", new BsonDateTime(dateFrom)) &
Builders<BsonDocument>.Filter.Lte("utcData", new BsonDateTime(dateTo))
);
System.Diagnostics.Debug.Write(query_filter.Render(collection.DocumentSerializer,
collection.Settings.SerializerRegistry).ToString());
但这是发送到服务器的查询
{ "utcData" : { "$gte" : ISODate("2018-07-08T22:00:00Z"), "$lte" : ISODate("2018-07-09T22:00:00Z") } }
为什么从日期中减去一天?有什么方法可以避免日期发生任何变化?
谢谢。
答案 0 :(得分:0)
这个创建utc日期:
DateTime.Parse("2018-07-09", CultureInfo.InvariantCulture , System.Globalization.DateTimeStyles.AssumeUniversal);