当前位置: 首页 > 知识库问答 >
问题:

如何在C#中实现MongoDB嵌套的$ElemMatch查询

左丘弘致
2023-03-14
{
"_id" : ObjectId("56c6f03ffd07dc1de805e84f"),
"Details" : {
    "a" : [
            [ { 
                "DeviceID" : "log0", 
                "DeviceName" : "Dev0"
              },
              { 
                "DeviceID" : "log1", 
                "DeviceName" : "Dev1"
              }
            ],
            [ { 
                "DeviceID" : "Model0", 
                "DeviceName" : "ModelName0"
              },
              { 
                "DeviceID" : "Model1", 
                "DeviceName" : "ModelName1"
              }
            ]
        ]
    }
}
db.test_collection.find({"Details.a":{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}});
query = Query.And(Query.ElemMatch("Details.a", Query.And(Query.ElemMatch("DeviceName", Query.Matches("DeviceName", new BsonRegularExpression("Name0"))))));

提前致谢

共有1个答案

夏炎彬
2023-03-14

嗯,老实说,用C#编写查询有点棘手,但你总是可以玩一个把戏。

var bsonQuery = "{'Details.a':{$elemMatch:{$elemMatch:{DeviceName : /.*Name0.*/}}}}";
var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bsonQuery);

var result = col.FindSync (filter).ToList();

我将一个普通的MongoDB查询反序列化为一个BsonDocument,作为筛选器传递给FindAsync。

最后,您将在变量结果中得到所需的结果。

 类似资料:
  • 我有一个引用另一个文档的文档,我想加入这些文档并根据子文档中数组的内容进行筛选: deployment\u计算机文档: machine\u状态文档: 我使用的是Mongo 3.6,在查找和管道方面取得了一些成功,下面是我在python MongoEngine中使用的对象,它被传递给聚合函数: 这工作得很好,但是我怎么能排除部署机器不活动的结果呢?我觉得它必须进入项目,但找不到有效的条件。感谢任何帮

  • 本文向大家介绍MongoDB查询中如何更新嵌套文档,包括了MongoDB查询中如何更新嵌套文档的使用技巧和注意事项,需要的朋友参考一下 要更新嵌套文档,请使用update(),并在其中使用点号。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是更新嵌套文档的查询- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-

  • 我对数据砖spark SQL是新手。我正在寻找嵌套的collect_list并试图找出答案。下面是我的spark实际sql查询 我修改如下 修改查询后,我得到如下错误

  • 我问了这个问题作为对另一个问题的评论,也在mongodb-user上发布了一个问题。到目前为止没有回复,所以我求助于问一个单独的问题。 文件说明: 如果字段包含一个数组,则$in操作符选择其字段包含数组的文档,该数组至少包含一个与指定数组中的值匹配的元素(例如,等等) 我正在使用: 在MongoDB外壳中: 下面是应根据文档及其生成的结果工作的查询列表: 为什么这个不行? 为什么我需要所有的钱?

  • 我试图用C#在MongoDB中用嵌套数组文档实现文本搜索功能。我有一个以下格式的MongoDB集合。

  • 问题内容: 我对mongodb还是很陌生,有一件事我现在无法解决: 假设您有以下文档(简体): 哪个查询将返回json-object,其值等于“ value2”? 这意味着,我需要这个json-object: 当然,我已经尝试了很多可能的查询,但是没有一个返回正确的查询,例如 有人可以帮我看看我在做什么错吗? 谢谢! 问题答案: 使用位置运算符 输出量 使用聚合 输出 使用Java驱动程序 输出