MongoDB .NET异常:不支持的过滤器

时间:2017-07-28 03:47:00

标签: c# .net mongodb linq mongodb-.net-driver

我目前正在使用mongodb的.NET包装器(请参阅packages.config中的以下摘录版本):

>>> titles[99].find_element_by_xpath('../span[2]').text
'(II) (2016)'

我正在尝试构建一个简单的过滤器,以获取LatitudeDelta和LongitudeDelta定义的位置的纬度和经度在一定限度内的项目。

 <package id="mongocsharpdriver" version="2.4.2" targetFramework="net461" />
  <package id="MongoDB.Bson" version="2.4.2" targetFramework="net461" />
  <package id="MongoDB.Driver" version="2.4.2" targetFramework="net461" />
  <package id="MongoDB.Driver.Core" version="2.4.2" targetFramework="net461" />

当程序执行&#34; var queries&#34;在线上,它出现了一个例外情况&#34; Abs(({PinLocation.Latitude} - 3.209096))不受支持。&#34;。

如何修复上述异常?否则,如果上述问题无法解决,那么解决方法是什么?

1 个答案:

答案 0 :(得分:1)

Maby有效吗?

var filter = Builders<Models.MapQuery>.Filter.And(
        Builders<Models.MapQuery>.Filter.Eq(p => p.username, username),
        Builders<Models.MapQuery>.Filter.Lt(p => Math.Abs(p.PinLocation.Latitude - desiredLatitude), latitudeDelta),
        Builders<Models.MapQuery>.Filter.Lt(p => Math.Abs(p.PinLocation.Longitude - desiredLongitude), longitudeDelta));

我更改了代码以使用内置的API调用以提高可读性。我建议你在执行查询之前先进行检查。