如果我有这样的文档,是否有一个芒果查询可以用来查找签名数组中的 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字段。
当然,通过 View 更容易实现您想要的:
function(doc) {
doc.signatures.forEach(function(elem) {
if (elem.uid == doc.uid) {
emit(null, null);
return
}
});
}
关于CouchDB Mango 查询 - 将值与数组项匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446226/