Die Antwort hängt von Ihrer Architektur ab.
Wenn Sie irgendeine Art von „Middleware“ zwischen den Clients und der Datenbank haben, können Sie Ihre Daten aus der zweiten Ansicht Muster holen begrenzen Sie beschreiben ([org.couchdb.user:user1, otherkey]
) durch ?startkey=["org.couchdb.user:user1"]&endkey=["org.couchdb.user:user1",{}]
abfragt. Dies begrenzt die Ergebnisse auf diejenigen zwischen dem ersten möglichen ausgegebenen Schlüssel und dem letzten, da ein kürzeres Array vor längerem sortiert und ein Objekt nach anderen Werttypen sortiert.
Wenn Sie versuchen, so viel Validierung und Datenanzeige in CouchDB wie möglich zu machen (z. B. Sie schreiben eine "CouchApp"), dann sollten Sie über die Verwendung von filtered replication nachdenken. Dies kann verwendet werden, um jedem Benutzer seine eigene persönliche Datenbank zu geben, z. eine Untergruppe einer nicht öffentlichen Master-Datenbank, die nur Dokumente enthält, die sie sehen sollten. Dann können Sie nur einfache Dokumentschlüssel ausgeben und davon ausgehen, dass Ihre Ergebnisse nur relevante Dokumente enthalten.
Es gibt ein wenig mehr Hintergrundinformationen zur Verwendung der gefilterten Replikation auf halbem Weg zu diesem Blogpost, und hier finden Sie möglicherweise weitere Diskussionen zu bestimmten Fragen.
Müssen Sie den Zugriff auf nicht im Besitz befindliche Dokumente verbieten? –
Ja. Schließlich möchte ich ihnen die Möglichkeit geben, anderen Benutzern zu erlauben, sie zu sehen oder zu bearbeiten. –