Mongodb查询子目录

本文关键字:子目录 查询 Mongodb | 更新日期: 2023-09-27 18:01:05

我有如下的mongodb数据结构:

        {
       "_id" : ObjectId("512c4c468c08631ff0dbb02c"),
       "ReferenceNumber" : "MongoDb",
       "Title" : "Shashi",
       "CreatedUserId" : "users/1027",
       "Content" : "s",
       "CustomerId" : "customers/257",
       "StatusDefinitionId" : "sd",
        "ItemMetadata" : [{
       "MetadataId" : "MetadataDefinitions/839",
       "MetadataName" : "DropDown",
       "MetadataValue" : "78"
        }, {
      "MetadataId" : "MetadataDefinitions/839",
      "MetadataName" : "DropDown",
      "MetadataValue" : "DropDown3"
       }, {
       "MetadataId" : "MetadataDefinitions/838",
       "MetadataName" : "Number1",
       "MetadataValue" : "546"
        }],
        "Portfolios" : [{
        "_id" : "portfolios/226",
         "IsDefault" : true
         }]
        }

第二个项目集合:-

                        {
                      "_id" : ObjectId("512c4c468c08631ff0dbb02c"),
                      "ReferenceNumber" : "MongoDb",
                       "Title" : "Shashi",
                       "CreatedUserId" : "users/1027",
                       "Content" : "s",
                       "CustomerId" : "customers/257",
                       "StatusDefinitionId" : "sd",
                        "ItemMetadata" : [{
                     "MetadataId" : "MetadataDefinitions/839",
                   "MetadataName" : "DropDown",
                     "MetadataValue" : "78"
                     }, {
                   "MetadataId" : "MetadataDefinitions/839",
                    "MetadataName" : "DropDown",
                     "MetadataValue" : "DropDown4"
                       }, {
                     "MetadataId" : "MetadataDefinitions/838",
                     "MetadataName" : "Number1",
                    "MetadataValue" : "546"
                     }],
                     "Portfolios" : [{
                    "_id" : "portfolios/226",
                       "IsDefault" : true
                       }]
                       }

我想在mongodb c#中获取查询。我只需要返回第一个项目集合。

(ItemMetadata.MetadataName= "DropDown" and ItemMetadata.MetadataValue="78" and ItemMetadata.MetadataName= "DropDown" and ItemMetadata.MetadataValue="DropDown3") 

类似于ItemMetadata的第二个子项。有点像这个

    Query.EQ("ItemMetadata.MetadataName", "DropDown") and (Query.EQ("ItemMetadata.MetadataValue", "78"]

Mongodb查询子目录

就返回哪个文档而言,您的查询是"我如何指定只有包含数组元素的文档,其中MetadataName和MetadataValue在同一元素中匹配"-$elematch是要使用的运算符。

就要返回文档的哪些部分而言,您唯一的选择是返回整个文件或不返回整个字段。在常规查询中,不能对存储数组中的值进行子集运算。(尽管您可以使用聚合框架$unroll,但不是真正必要的或建议的高事务读取(