MongoDB FilterDefinition&IQueryable in C#

问题描述 投票:4回答:2

我具有以下空间FilterDefinition

var filter = Builders<MyDocument>
                .Filter
                .Near(x => x.Point, point, 1000);

有没有办法将其包含在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();

我正在使用新的2.2.2库。

.net mongodb mongodb-query mongodb-.net-driver mongodb-csharp-2.0
2个回答
4
投票

。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谓词包括在常规查找/聚集查询中。


0
投票

从2.4开始,您可以使用Inject()完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.