如何通过 .net mongoDb 驱动程序通过嵌套属性获取 mongoDb 中的文档

安吉特·拉昂卡

假设我在某个集合中有以下文档

   [{
            "name": "Man1",            
            "Childrens": [
                 {
                     "name": "Children 1",
                     "age": "12"
                 },
                 {
                     "name": "Children 2",
                     "age": "18"
                 },
             ]
        },
{
            "name": "Man1",            
            "Childrens": [
                 {
                     "name": "Children 3",
                     "age": "12"
                 },
                 {
                     "name": "Children 4",
                     "age": "18"
                 },
             ]
        }
]

我想得到其中一个孩子的名字是“Children 1”的文件

我想通过 .net mongo 驱动程序实现这一点

var bQuery = String.Format("{{ '{0}':'{1}' }}","Childrens.name","Children 1");
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bQuery);
result = await db.GetCollection<T>(collectionName).Find<T>(filter).ToListAsync(); 

但这返回空列表,就像我做的那样

var bQuery = String.Format("{{ '{0}':'{1}' }}","name","Man1");

有用

所以当我们通过嵌套属性搜索时我无法让它工作

刘丽

请尝试使用以下代码,我已成功测试:

{ "Childrens": { $elemMatch: { "name": "Children 1"} } }

你的代码是:

var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>("{ \"Childrens\": { $elemMatch: { \"name\": \"Children 1\"} } }");
result = await db.GetCollection<T>(collectionName).Find<T>(filter).ToListAsync(); 

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过.NET在MongoDB中的子文档上创建索引

MongoDB:如何通过嵌套文档中的ID查找文档

如何使用MongoDb .net驱动程序获取集合中所有文档的几个特定字段

如何用Go驱动程序替换MongoDB中的文档?

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

如何在数组.NET驱动程序中的项目属性上创建MongoDB MultiKey索引

MongoDb:通过Java驱动程序在$ external中创建用户

在mongoDB文档中通过ID获取嵌套对象

如何使用 Java 驱动程序在 MongoDB 中获取嵌入文档数组的特定值

Mongodb:如何使用mongodb Java驱动程序更改嵌套文档的值

通过mongoDB Java驱动程序获取mongoStat

如何使用Java在MongoDB 3.3中通过_id删除文档

如何通过 MongoDB 中的键查询子文档的映射?

通过Java在MongoDB文档中插入日期

如何通过Java驱动程序从MongoDB中的不同列表中排序结果?

使用 .Net 驱动程序异步更新或插入 MongoDB 文档

如何使用.NET的MongoDB驱动程序的updateOne()更新而不替换文档

如何通过用mongoDB集合中的新文档替换文档来更新文档

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

通过单个查询在文档和子文档中搜索Mongodb

如何在mongodb中查询嵌套文档?

如何通过 mongodb Java 驱动程序 3.4+ 使用上限集合添加多个文档?

如何从MongoDB Java中的多个嵌套文档中读取属性?

在MongoDB Web API中无法通过ID获取文档

MongoDB - 通过最后嵌入的文档获取文档

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

MongoDb:如何从文档中获取字段(子文档)?

mongodb Java驱动程序3.0:如何存储JSON文档

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