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"]
就返回哪个文档而言,您的查询是"我如何指定只有包含数组元素的文档,其中MetadataName和MetadataValue在同一元素中匹配"-$elematch是要使用的运算符。
就要返回文档的哪些部分而言,您唯一的选择是返回整个文件或不返回整个字段。在常规查询中,不能对存储数组中的值进行子集运算。(尽管您可以使用聚合框架$unroll,但不是真正必要的或建议的高事务读取(