MongoDB C#驱动程序-如何查询子文档数组上的属性

布莱恩·奥利弗(Brian Oliver)

假设我在MongoDB中具有以下文档结构。

{
    _id: ####,
    Ancestors: [
        { _id: 1, Name: "asdf" },
        { _id: 2, Name: "jkl;" },
        ...
    ]
}

我想找到每个包含祖先_id为2的祖先的文档。

我可以使用以下命令在mongo shell中运行此查询: db.projects.find({"Ancestors._id": 2})

我还可以使用官方的C#驱动程序通过以下命令运行此查询:Query.EQ("Ancestors._id", new BsonInt32(rootProjectId))

这是我的POCO;我正在使用的实际类具有比此更多的属性,但是我不想用不必要的细节来弄乱这个问题:

public class Project
{
    public int Id { get; set; }
    public List<ProjectRef> Ancestors { get; set; }
}

public class ProjectRef
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我的问题是:如何使用C#驱动程序编写强类型查询,这样我就不必将“ Ancestors._id”作为字符串传递?我希望能够做类似的事情,Query<Project>.EQ(p => p.Id, rootProjectId)以便我可以改用成员表达式,并让类映射告诉驱动程序它应使用“ Ancestors._id”。

鞭塔尔

在这种情况下,ElemMatch是您的朋友。

尝试以下方法:

var ancestorsQuery = Query<ProjectRef>.EQ(pr => pr.Id, rootProjectId);
var finalQuery = Query<Project>.ElemMatch(p => p.Ancestors, builder => ancestorsQuery));

在Projects集合的Find命令中使用finalQuery。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MongoDB C#驱动程序查询数组的数组

来自分类Dev

如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

来自分类Dev

如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

来自分类Dev

MongoDb与查询C#驱动程序不同

来自分类Dev

使用C#驱动程序从mongodb查询标签

来自分类Dev

Mongodb C#驱动程序Linq查询分组依据

来自分类Dev

MongoDB C#驱动程序2.0查询样式

来自分类Dev

MongoDB聚合查询通过C#驱动程序变慢

来自分类Dev

如何使用MongoDB C#驱动程序进行$ lookup?

来自分类Dev

如何使用MongoDB C#驱动程序聚合$ lookup?

来自分类Dev

Mongodb C# 驱动程序只返回数组中匹配的子文档

来自分类Dev

如何使用mongodb C#驱动程序获取子文档的集合?

来自分类Dev

如何使用C#驱动程序删除mongodb文档中的嵌套数组元素

来自分类Dev

复合查询以在MongoDb C#驱动程序中查找文档

来自分类Dev

复合查询以在MongoDb C#驱动程序中查找文档

来自分类Dev

MongoDB C#驱动程序-更新嵌入式文档数组中的所有字段

来自分类Dev

如何在MongoDB C#驱动程序中按值的字段范围选择文档?

来自分类Dev

Mongodb C#驱动程序更新所有子数组元素

来自分类Dev

Mongodb C#驱动程序Perform字符串包含对嵌入式文档中的属性的查询

来自分类Dev

MongoDB C#驱动程序2.2.2 IBsonSerializer上的'ValueType'属性的用途是什么

来自分类Dev

如何使用C#驱动程序以字符串格式查询MongoDB?

来自分类Dev

如何在C#驱动程序中编写以下MongoDB查询?

来自分类Dev

如何使用C#驱动程序以字符串格式查询MongoDB?

来自分类Dev

我如何将这个 mongodb 查询转换为 c# 驱动程序?

来自分类Dev

如何在MongoDB C#驱动程序中按后代属性筛选?

来自分类Dev

如何在 C# Mongodb 强类型驱动程序中删除嵌套文档的数组内的元素

来自分类Dev

MongoDb C#驱动程序是否可以使用LINQ和动态文档?

来自分类Dev

MongoDB C#驱动程序-更新许多文档时的性能问题

来自分类Dev

是否使用C#驱动程序可用于MongoDB的文档验证器?

Related 相关文章

  1. 1

    使用MongoDB C#驱动程序查询数组的数组

  2. 2

    如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

  3. 3

    如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

  4. 4

    MongoDb与查询C#驱动程序不同

  5. 5

    使用C#驱动程序从mongodb查询标签

  6. 6

    Mongodb C#驱动程序Linq查询分组依据

  7. 7

    MongoDB C#驱动程序2.0查询样式

  8. 8

    MongoDB聚合查询通过C#驱动程序变慢

  9. 9

    如何使用MongoDB C#驱动程序进行$ lookup?

  10. 10

    如何使用MongoDB C#驱动程序聚合$ lookup?

  11. 11

    Mongodb C# 驱动程序只返回数组中匹配的子文档

  12. 12

    如何使用mongodb C#驱动程序获取子文档的集合?

  13. 13

    如何使用C#驱动程序删除mongodb文档中的嵌套数组元素

  14. 14

    复合查询以在MongoDb C#驱动程序中查找文档

  15. 15

    复合查询以在MongoDb C#驱动程序中查找文档

  16. 16

    MongoDB C#驱动程序-更新嵌入式文档数组中的所有字段

  17. 17

    如何在MongoDB C#驱动程序中按值的字段范围选择文档?

  18. 18

    Mongodb C#驱动程序更新所有子数组元素

  19. 19

    Mongodb C#驱动程序Perform字符串包含对嵌入式文档中的属性的查询

  20. 20

    MongoDB C#驱动程序2.2.2 IBsonSerializer上的'ValueType'属性的用途是什么

  21. 21

    如何使用C#驱动程序以字符串格式查询MongoDB?

  22. 22

    如何在C#驱动程序中编写以下MongoDB查询?

  23. 23

    如何使用C#驱动程序以字符串格式查询MongoDB?

  24. 24

    我如何将这个 mongodb 查询转换为 c# 驱动程序?

  25. 25

    如何在MongoDB C#驱动程序中按后代属性筛选?

  26. 26

    如何在 C# Mongodb 强类型驱动程序中删除嵌套文档的数组内的元素

  27. 27

    MongoDb C#驱动程序是否可以使用LINQ和动态文档?

  28. 28

    MongoDB C#驱动程序-更新许多文档时的性能问题

  29. 29

    是否使用C#驱动程序可用于MongoDB的文档验证器?

热门标签

归档