gpt4 book ai didi

c# - 如何使用通用查询构建器查询集合

转载 作者:可可西里 更新时间:2023-11-01 09:38:30 24 4
gpt4 key购买 nike

我正在使用 mongocsharpdriver nuget 包(版本 1.11.0)对 mongo 数据库运行查询。

在 C# 中创建查询对象时,我可以这样做:

var query = Query.EQ("RootValue", "foo");

我可以改用更好的通用查询生成器来执行此操作:

var query = Query<RootObject>.EQ(x=>x.RootValue, "foo");

现在考虑这个查询::

var query = Query.EQ("Things.Value", "bar");

这里的 Things 是一组对象,上面有一个字符串 (Value)。在这种情况下,查询将返回在任何事物的值中具有匹配项的任何对象。

如何使用通用查询构建器编写此查询?

我不知道我需要什么样的表达才能正确翻译成我想要的...

为了更清楚这里是我的示例的类:

public class RootObject
{
[BsonId]
public ObjectId Id {get; set;}
public IEnumerable<RepeatedObject> Things {get; set;}
public string RootValue {get; set;}
}

public class RepeatedObject
{
public string Value {get; set;}
}

最佳答案

使用这个版本的驱动,查询如下

var query = Query<RootObject>.ElemMatch(x => x.Things, x => x.EQ(y => y.Value, "bar"));

将被翻译成所需的 MongoDB 查询:

{ Things: { $elemMatch: { Value: "bar" } } }

关于c# - 如何使用通用查询构建器查询集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51971351/

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