var result = this.collectionAlarm.Find(Query.And(
Query.GTE("Time", BsonDateTime.Create(start)),
Query.LTE("Time", BsonDateTime.Create(end)),
Query.GTE("Latitude", BsonString.Create(l_corr[1])), Query.LTE("Latitude", BsonString.Create(r_corr[1])),
Query.GTE("Longitude", BsonString.Create(l_corr[0])), Query.LTE("Longitude", BsonString.Create(r_corr[0]))
)).SetSortOrder(SortBy.Descending("DeviceId")).Take(50).Distinct().ToList();
这语句,去掉红色的代码,可以查询出数据,加上就查询不出来,语法上有错误吗?
红色语句块中是要判断在某两个区间的数据
检查 "Latitude" 在MongoDB中存储的数据类型和 BsonString.Create(l_corr[1]) 是否一致。
如果一致,检查 值是匹配。
必要时,用db.xxx.find({xxx:xxx}) 直接测试,是否可以查出数据。
=====
Query.GTE("value", 3);//大于等于>=
Query.LTE("value", 8);//小于等于<=
=====
还有范围条件是否正确?
嗯,再请教一个。
MongoDB数据库C#驱动对于去重复Distinct的使用方法
数据库层对于某个字段去重读会,但是用C#驱动语法写就不会了比如用Deviecid去重复