对象数组中对象的 Couchdb Mango 查询选择器
Couchdb Mango Query selector on object in array of objects
我有一个沙发数据库,里面装满了这种形式的条目
{
...
"templates" :[
{"template_id":"1"}
{"template_id":"2"}
{"template_id":"3"}
]
}
我正在尝试编写一个芒果查询,该查询将查找所有具有包含具有特定 template_id 的对象的模板的条目。我知道可以使用视图,但我想尽可能使用芒果查询
您应该在 Mango 查询选择器中尝试 $elemMatch 运算符。此运算符“returns 包含至少一个元素与提供的查询条件匹配的数组字段的所有文档”
此选择器将检索模板数组中包含 template_id:1 的任何文档
{
"templates": {
"$elemMatch":
{"template_id":"1"}
}
}
elemMatch 运算符接受选择器表达式,因此您可以编写更复杂的查询。
{
"templates": {
"$elemMatch": {"$or":[
{"template_id":"1"},
{"template_id":"3"}
]
}
}
我有一个沙发数据库,里面装满了这种形式的条目
{
...
"templates" :[
{"template_id":"1"}
{"template_id":"2"}
{"template_id":"3"}
]
}
我正在尝试编写一个芒果查询,该查询将查找所有具有包含具有特定 template_id 的对象的模板的条目。我知道可以使用视图,但我想尽可能使用芒果查询
您应该在 Mango 查询选择器中尝试 $elemMatch 运算符。此运算符“returns 包含至少一个元素与提供的查询条件匹配的数组字段的所有文档”
此选择器将检索模板数组中包含 template_id:1 的任何文档
{
"templates": {
"$elemMatch":
{"template_id":"1"}
}
}
elemMatch 运算符接受选择器表达式,因此您可以编写更复杂的查询。
{
"templates": {
"$elemMatch": {"$or":[
{"template_id":"1"},
{"template_id":"3"}
]
}
}