Вы не можете ссылаться на значения, только на ключи - так что вы можете проверить, есть ли конкретный «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
}
});
}