Ich habe zwei Dokumente, die in etwa so aussehen:
Doc
{
_id: AAA,
creator_id: ...,
data: ...
}
DataKey
{
_id: ...,
credits_left: 500,
times_used: 0,
data_id: AAA
}
Ich möchte eine Ansicht erstellen, die es mir ermöglicht, die DataKey-ID (key=DataKey _id) zu übergeben und sowohl die Informationen des DataKey als auch des Doc zu erhalten.
Mein Versuch:
Ich habe zunächst versucht, den DataKey in das Doc einzubetten und eine Map-Funktion wie folgt zu verwenden:
function (doc)
{
if (doc.type == "Doc")
{
var ids = [];
for (var i in doc.keys)
ids.push(doc.keys[i]._id);
emit(ids, doc);
}
}
Aber ich bin auf zwei Probleme gestoßen:
- Es können mehrere DataKey's pro Doc geben, also mit startkey=[idhere...] und endkey=[idhere..., {}] funktionierte nicht funktioniert (nur wenn der Schlüssel zufällig der erste im Array war).
- Alle Datenschlüssel müssen eindeutig sein, und ich würde es vorziehen, nicht ein separates Dokument wie {_id = datakey} zu erstellen, um den Schlüssel zu reservieren.
Hat jemand eine Idee, wie ich das bewerkstelligen kann? Lassen Sie mich wissen, wenn etwas unklar ist.
-----EDIT-----
Ich vergaß zu erwähnen, dass ich in meiner Anwendung nicht weiß, was die Doc-ID ist, also muss ich in der Lage sein, nach der ID des DataKey zu suchen.