使用MongoDB中的数组查询文档C#

时间:2013-12-20 16:51:58

标签: c# mongodb

我正在使用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")
   )
);

请指教!!!

1 个答案:

答案 0 :(得分:2)

使用ElemMatch,您的查询只匹配相同 productTag数组元素中满足两个查询字词的文档(在这种情况下不可能) )。

相反,请使用使用点符号的查询,如下所示:

var finalQuery = Query.And(
    Query.EQ("productTag.value", "test1Value"),
    Query.EQ("productTag.value", "test2Value")
);