У меня есть два документа, которые выглядят примерно так:
Doc
{
_id: AAA,
creator_id: ...,
data: ...
}
DataKey
{
_id: ...,
credits_left: 500,
times_used: 0,
data_id: AAA
}
Я хочу создать представление, которое позволило бы мне передать идентификатор DataKey (key = DataKey _id) и получить информацию как DataKey, так и документа.
Моя попытка:
Сначала я попытался встроить DataKey внутри документа и использовал функцию карты следующим образом:
function (doc)
{
if (doc.type == "Doc")
{
var ids = [];
for (var i in doc.keys)
ids.push(doc.keys[i]._id);
emit(ids, doc);
}
}
Но я столкнулся с двумя проблемами:
- Может быть несколько DataKey для
Док, так что используя startkey = [idhere ...]
и endkey = [idhere ..., {}] не
работать (работал только если ключ случился
быть первым в массиве).
- Все ключи данных должны быть уникальными, и я бы предпочел не создавать отдельный документ, такой как {_id = datakey}, чтобы зарезервировать ключ.
У кого-нибудь есть идеи, как мне это сделать? Дайте мне знать, если что-то неясно.
----- EDIT -----
Я забыл упомянуть, что в моем приложении я не знаю, что такое Doc ID, поэтому мне нужно иметь возможность искать по IDKey.