如果我有这样的文档,是否有一个芒果查询可用于查找uid
签名数组中的uid
与根文档中的 匹配的所有文档?
{
_id: "1",
uid: "12345",
signatures: [ { uid: "12345" } ]
},
{
_id: "2",
uid: "12345",
signatures: [ { uid: "55555" } ]
}
预期的回应只会给我第一份文件。
如果我有这样的文档,是否有一个芒果查询可用于查找uid
签名数组中的uid
与根文档中的 匹配的所有文档?
{
_id: "1",
uid: "12345",
signatures: [ { uid: "12345" } ]
},
{
_id: "2",
uid: "12345",
signatures: [ { uid: "55555" } ]
}
预期的回应只会给我第一份文件。
您不能引用值,只能引用键 - 因此您可以检查特定的“uid”是否在数组中
{
"selector": {
"signatures": {
"$elemMatch": {
"$eq": {
"uid": "12345"
}
}
}
},
"fields": [
"_id",
"_rev"
]
}
但你不能说 uid 应该等于数组外的 uid 字段。
当然,使用视图更容易实现您想要的:
function(doc) {
doc.signatures.forEach(function(elem) {
if (elem.uid == doc.uid) {
emit(null, null);
return
}
});
}