如果我有这样的文档,是否可以使用芒果查询来查找签名数组中的uid
与根文档中的uid
匹配的所有文档?
{
_id: "1",
uid: "12345",
signatures: [ { uid: "12345" } ]
},
{
_id: "2",
uid: "12345",
signatures: [ { uid: "55555" } ]
}
期望的答复只会给我第一份文件。
答案 0 :(得分:1)
您只能引用键,而不能引用值,因此您可以使用
来检查数组中是否存在特定的“ 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
}
});
}