Eine andere Lösung, einschließlich aller Schritte:
1/Erstellen Testtabelle
r.table('foo').insert([
{foo: 1},
{foo: 2},
{foo: 3},
{foo: 4},
{foo: 5}
])
2/Inhalt der Listentabelle
r.table('foo')
Ausgang:
[
{"foo":4,"id":"3c6873af-0dfc-41d3-99ad-894bab981635"},
{"foo":1,"id":"302baaa5-1443-408c-bb58-7970e71129ac"},
{"foo":2,"id":"ca5ff9c2-8079-4a19-9cfc-4e7b0a834555"},
{"foo":5,"id":"aabb6c38-710a-444c-a4ae-b8ee14b5e802"},
{"foo":3,"id":"4fc2e6e8-9434-4fa9-831b-4208bc82fd35"}
]
3/Erstellen Sekundärindex
r.table('foo').indexCreate('id_prefix', function(d){
return d('id').slice(0, 13)
})
4/List Index Inhalt
r.table('foo').distinct({index:'id_prefix'})
Ausgang:
["302baaa5-1443","3c6873af-0dfc","4fc2e6e8-9434","aabb6c38-710a","ca5ff9c2-8079"]
5/den Index verwenden, um das Dokument (e) mit dem Präfix "4fc2e6e8-9434"
r.table('foo').getAll("4fc2e6e8-9434", {index:'id_prefix'})
Output
[{"foo":3,"id":"4fc2e6e8-9434-4fa9-831b-4208bc82fd35"}]
Dies ist eine längere Einrichtung und Lösung zu finden, ABER, auf einer Tabelle von zum Beispiel mehrere Millionen Dokumente, kann es wirklich schneller machen.
@ Kureikain Lösung funktioniert, aber warum haben Sie nur einen Teil der UUID zum Zeitpunkt der Abfrage? – dalanmiller
@dalanmiller Ich möchte die UUID als URL-Parameter verwenden, aber nicht die gesamte UUID, da sie wirklich lang ist. In einer SQL-Welt würde ich nur eine automatisch inkrementierte Ganzzahl machen, aber natürlich ist das Umdenken nicht genau für diese Art von Verhalten optimiert. Gedanken? –