在我们的系统中,我们需要知道对特定文档 ID 的引用是否存在于数据库中的任何位置。(例如允许/拒绝删除)
这以前在我们创建的视图中运行良好,但现在我们被要求使用 Cloudant 查询选择器来做同样的事情。
我们提出了下面的解决方案,其中包含了可以找到文档引用的所有可能路径。查询是动态生成的,以包含“外键”引用的所有可能路径,但这意味着它需要扩展到潜在的 +100 个唯一路径(即,$or 运算符数组可能以 +100 个项目结束)
我想知道这么大的查询是否会起作用,以及潜在的性能影响。另外,如果我们想知道另一种方法。
{
"selector": {
"$or": [
{
"content": {
"$elemMatch": {
"accounts": {
"$elemMatch": {
"bank": "bank12345"
}
}
}
}
},
{
"content": {
"$elemMatch": {
"partners": {
"$elemMatch": {
"someEntity": "someReference12345"
}
}
}
}
}
]
},
"fields": [
"_id",
"_rev"
]
}