我正在使用MongoDB C#API。
下面是MongoDB文档结构:
{
"_id" : ObjectId("4fc6aaaef8594f055c4169f2"),
"Status" : "A",
"productTagContainerId" : "ptag_item_45688ab87bf796",
"productTag" : [{
"id" : "root",
"idText" : "",
"tagSource" : "Category",
"value" : "rootValue"
},
"id" : "test1",
"idText" : "",
"tagSource" : "Category",
"value" : "test1Value"
},
"id" : "test2",
"idText" : "",
"tagSource" : "Category",
"value" : "test2Value"
}]
}
我只是在“productTag”中的“value”分别与test1Value和test2Value匹配时才尝试获取此文档。 我尝试了如下所示的查询但返回null:
finalQuery = Query.ElemMatch("productTag",
Query.And(
Query.EQ("value", "test1Value"),
Query.EQ("value", "test2Value")
)
);
请指教!!!
答案 0 :(得分:2)
使用ElemMatch
,您的查询只匹配相同 productTag
数组元素中满足两个查询字词的文档(在这种情况下不可能) )。
相反,请使用使用点符号的查询,如下所示:
var finalQuery = Query.And(
Query.EQ("productTag.value", "test1Value"),
Query.EQ("productTag.value", "test2Value")
);