Ich habe eine Datenbank mit mehreren Dokumenten. Jedes Dokument hat ein Feld mit Benutzer-ID. Angenommen, diese Dokumente gehören zwei Benutzern: 1 und 2. Ich möchte ein neues Dokument nur für jeden Benutzer extrahieren. Wie sollte ich den Suchindex implementieren? Ich kann jetzt alle Dokumente eines Benutzers abrufen, indem ich benutze: user_id: 1 Aber wie kann ich doc-Nummer auf eins für jeden Benutzer in einer Abfrage begrenzen?Suche ein Dokument pro Benutzer auf Cloudant
0
A
Antwort
0
Angenommen, Sie ein Datum Eigenschaft auf jedem doc haben Sie dies erreichen könnte wie folgt aussehen:
Erstellen Sie den folgenden Index:
{
"index": {
"fields": [
{"user_id":"desc"},
{"date_field":"desc"}
]
},
"type": "json"
}
Um die neuesten doc Abfrage für user_id
== „1“ Ihr Abfrage würde wie folgt aussehen:
{
"selector": {
"user_id": "1"
},
"fields": [
"_id",
"user_id",
"date_field"
],
"sort": [
{ "user_id": "desc" },
{ "date_field": "desc" }
],
"limit":1
}
Wenn Sie versuchen, mehrere Benutzer in einer einzigen Abfrage zurückkehren, dann würden Sie so etwas zu tun haben:
- hinzufügen eine Eigenschaft namens
latest
oder ähnliche einen Index hinzufügen auf
user_id
undlatest
:{ "index": { "fields": [ "user_id", "latest" ] }, "type": "json" }
Jedes Mal, wenn Sie für diese
user_id
ein neues Dokument finden Sie das Dokument hinzufügen, wolatest
wahr ist:{ "selector": { "user_id": "1", "latest" : true }, "fields": [ "_id", "user_id", "latest" ] }
Set
latest
= false auf diesem Dokument- Setzen Sie das neue Dokument mit
latest
= true Diese Abfrage die neuesten doc für alle Benutzer finden:
{ "selector": { "user_id": {"$gt":null}, "latest" : true }, "fields": [ "_id", "user_id", "latest" ] }
Verwandte Themen
- 1. cloudant Apache-Funken Zugang Design-Dokument
- 2. Stop Cloudant Abfragen zurück _design Dokument
- 3. PouchDB auf Cloudant
- 4. Geben Sie pro Benutzer in Elasticsearch ein?
- 5. Ein Popout nur einmal pro Benutzer anzeigen
- 6. Tags pro Beitrag pro Benutzer, der Benutzer ist nicht aufgeführt.
- 7. lesen Dokumente pro Benutzer pro Tag
- 8. Weg zu überprüfen ist ein Benutzer ein Dokument Autor?
- 9. Postgresql - Verbindungslimit pro Benutzer
- 10. pro Benutzer resolv.conf
- 11. Sellerie PeriodicTask pro Benutzer
- 12. Unterstützt Cloudant TLS1.2-Verbindungen?
- 13. Cloudant Auth: fehlt _users Datenbank
- 14. Cloudant Node-Modul - Suche mit Index nicht möglich
- 15. Was ist der nächste Nachbar von Cloudant Geospatial Point Suche
- 16. log4j mit bluemix cloudant DB
- 17. Zeitreihendaten in Cloudant oder MongoDB
- 18. mehr als 1 Abfrage pro PHP Dokument
- 19. Anpassen von DataGridView pro Benutzer
- 20. Python-Cloudant langsame Abfragegeschwindigkeit?
- 21. Cloudant Selector Query
- 22. Wie kann ich in einer Lucene/Lucene.net-Suche die Anzahl der Treffer pro Dokument zählen?
- 23. JS trim() Funktion in Cloudant
- 24. Suche nach Wort auf Seite (n) im Dokument
- 25. Maximale Laufzeit von Google Skript pro Benutzer oder pro Konto
- 26. Anmelden oder entschlüsseln Dokument mit Benutzer-ID
- 27. Cloudant: Filtern und Aggregation auf mehreren Ebenen
- 28. PowerShell-Suche Excel-Dokument für genaue Übereinstimmung
- 29. Count Anzahl der Benutzer pro Login zählen pro Woche
- 30. Cloudant Multi-Datenbank-Abfrage