Dav*_*New 7 .net mongodb mongodb-query mongodb-csharp-2.0 mongodb-.net-driver
我有以下空间FilterDefinition:
var filter = Builders<MyDocument>
.Filter
.Near(x => x.Point, point, 1000);
Run Code Online (Sandbox Code Playgroud)
有没有办法将它包含在IQueryable表达式中?
例如,我可能有以下 LINQ 语句。如何包含上述条件?据我所知,空间查询没有 LINQ 支持。
return Database
.GetCollection<Places>("Places")
.AsQueryable()
.Where(x => x.StartDate.Date <= date)
.Where(x => x.EndDate.Date >= date)
.Where(x => keys.Contains(selectedKeys))
.ToList();
Run Code Online (Sandbox Code Playgroud)
我正在使用新的 2.2.2 库。
Ash*_*ley 14
从 2.4 开始,您可以使用Inject()来完成此操作。
请参阅: https: //mongodb.github.io/mongo-csharp-driver/2.4/apidocs/html/M_MongoDB_Driver_Linq_LinqExtensions_Inject__1.htm
使用提供的示例代码(稍微更正),这将是:
var filter = Builders<Places>
.Filter
.Near(x => x.Point, point, 1000);
return Database
.GetCollection<Places>("Places")
.AsQueryable()
.Where(x => x.StartDate.Date <= date)
.Where(x => x.EndDate.Date >= date)
.Where(x => keys.Contains(selectedKeys))
.Where(x => filter.Inject())
.ToList();
Run Code Online (Sandbox Code Playgroud)
.NET 驱动程序 jira 项目中有一个功能请求:https : //jira.mongodb.org/browse/CSHARP-1445。所以,目前的答案是否定的,但希望很快。
但是,FilterDefinitionBuilder ( https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Driver/FilterDefinitionBuilder.cs#L1286 )上有一个“Where”方法,可以让您将 LINQ 谓词包含到正常的查找/聚合查询中。
| 归档时间: |
|
| 查看次数: |
11013 次 |
| 最近记录: |