CouchDB Mango查询-将值与数组项匹配
如果我有这样的文档,是否可以使用mango查询查找签名数组中的CouchDB Mango查询-将值与数组项匹配,couchdb,couchdb-mango,Couchdb,Couchdb Mango,如果我有这样的文档,是否可以使用mango查询查找签名数组中的uid与根文档中的uid匹配的所有文档 { _id: "1", uid: "12345", signatures: [ { uid: "12345" } ] }, { _id: "2", uid: "12345", signatures: [ { uid: "55555" } ] } 预期的响应只会给我第一个文档。您不能引用值,只能引用键-因此您可以检查数组中是否有特定的“uid” {
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
}
});
}