我的CouchDB文档包含一个数组字段,这是一个简化的示例:
{
"organizations": [
{ "id": "Org 1" },
{ "id": "Org 2" }
]
}
我想使用以下查询查找包含组织Org 1
的所有文档:
{
"selector": {"$elemMatch": {"id": "Org 1"}}
}
有办法用索引吗?我试过了
{
"fields": ["organizations.[].id"]
}
这似乎没有任何影响,我收到了相同的"no matching index found"
警告。
1条答案
按热度按时间v440hwme1#
使用标准的基于JSON/视图的索引,您无法为
$elemmatch
构建有用的索引,请参见Couchdb documentation for json index definition is unclear on support for indexing array fields #1388。虽然您可以对整个数组或逐个元素进行索引,但也不能为匹配任何数组位置中的元素的文档生成连续的键列表。
如果你用cloudant的插件构建couchdb,你可以使用支持
$elemmatch
的文本索引,但是它们有不同的特性,我建议你看看this article和之前问题中的其他链接。