gpt4 book ai didi

c# - FluentMongo LINQ : How to query a sublist of a class

转载 作者:可可西里 更新时间:2023-11-01 10:34:39 25 4
gpt4 key购买 nike

假设我有这样一个类:

public class BOa
{

public ObjectId Id { get; set; }

public string Name { get; set; }

public List<BOb> VisiteEffettuate = new List<BOb>();
}

public class BOvalues
{

public DateTime Data { get; set; }
public int Age { get; set; }
public int Score { get; set;}

}

明确地说,在 MongoDB 中,我有许多 BOa 的集合。他们每个人都包含许多(一系列......)BOvalues我想知道如何使用 FluentMongo LINQ(或其他方法)获取 BO 值列表,例如,分数大于一个值或两个值之间的年龄。

我想使用 SelectMany,但它似乎在 fluentmongo 中不受支持。

获得此结果的最佳方法是什么?

提前致谢!

编辑:我尝试在 LINQ 上使用 QueryBuilder 而不是...例如:

        var query = MongoDB.Driver.Builders.Query.ElemMatch("VisiteEffettuate", MongoDB.Driver.Builders.Query.And( 
MongoDB.Driver.Builders.Query.GT("Age", 32),
MongoDB.Driver.Builders.Query.EQ("Name", "xxxx")
)
);

var res = pazienti.Find(query);

……等等。它似乎工作。但是 QueryBuilder 没有那么多文档记录,并且(我不确定)不可能以编程方式创建查询(例如动态 LINQ)。

最佳答案

您可以使用 Any 运算符重写您的查询。

col.AsQueryable().Where(x => x.Any(y => y.Age < 40));

这现在可以在 FluentMongo 中使用。但是,由于官方驱动程序获得了 linq 支持,FluentMongo 不再是受支持的项目。

这目前在官方驱动程序中不起作用,但计划在 1.5 版中使用。我建议您在 1.5 发布之前暂时坚持使用查询构建器。

关于c# - FluentMongo LINQ : How to query a sublist of a class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com