我的应用程序中有一个字段,如下所示。
{ "Ct": "HH", Val:{ "Count":"A", "Branch":"A" } }
当我尝试在CouchDB中使用下面的命令检索此记录时,我无法检索记录。
{ "selector" : { "Val":{ "$elemMatch":{ "Count":"A" } } }
r8xiu3jd1#
来自CouchDB文档,$elemMatch [1]匹配并返回包含数组字段的所有文档,该数组字段至少有一个元素与所有指定的查询条件匹配。Val.Count不是数组字段,因此$elemMatch不适用。考虑一下关于子字段查询的CouchDB文档[2]:
$elemMatch
Val.Count
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.子字段
1条答案
按热度按时间r8xiu3jd1#
来自CouchDB文档,
$elemMatch
[1]匹配并返回包含数组字段的所有文档,该数组字段至少有一个元素与所有指定的查询条件匹配。
Val.Count
不是数组字段,因此$elemMatch
不适用。考虑一下关于子字段查询的CouchDB文档[2]:
1.3.6.1.3.子字段
更复杂的选择器使您能够指定嵌套对象的字段或子字段的值。例如,您可以使用标准JSON结构来指定字段和子字段。
使用标准JSON结构的字段和子字段选择器示例:
缩写的对等用法使用点标记法将字段和子字段名称组合成一个名称。
具体来说,
1CouchDB:1.3.6.1.7.组合运算符
2CouchDB:1.3.6.1.3.子字段