CouchDB 如何让$elemMatch在mango查询中对json数组数据起作用?

xvw2m8pv  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(176)

我的应用程序中有一个字段,如下所示。

{
 "Ct": "HH",
  Val:{
   "Count":"A",
   "Branch":"A"
  }
 }

当我尝试在CouchDB中使用下面的命令检索此记录时,我无法检索记录。

{
 "selector" : {
    "Val":{
      "$elemMatch":{
         "Count":"A"
       }
     }
 }
r8xiu3jd

r8xiu3jd1#

来自CouchDB文档,$elemMatch [1]
匹配并返回包含数组字段的所有文档,该数组字段至少有一个元素与所有指定的查询条件匹配。
Val.Count不是数组字段,因此$elemMatch不适用。
考虑一下关于子字段查询的CouchDB文档[2]:

1.3.6.1.3.子字段

更复杂的选择器使您能够指定嵌套对象的字段或子字段的值。例如,您可以使用标准JSON结构来指定字段和子字段。
使用标准JSON结构的字段和子字段选择器示例:

{
    "imdb": {
        "rating": 8
    }
}

缩写的对等用法使用点标记法将字段和子字段名称组合成一个名称。

{
    "imdb.rating": 8
}

具体来说,

selector: {
   "Val.Count": "A"       
}

1CouchDB:1.3.6.1.7.组合运算符
2CouchDB:1.3.6.1.3.子字段

相关问题