2016-07-08 15 views
0

Ich verwende eine RethinkDB mit dem Python-Treiber.RethinkDB Python-Abfrage gibt ein anderes Ergebnis aus als Daten-Explorer

Python Anfrage:

response = r.db("user_data_sets").table("indexes").get_all(r.args(['key1', 'key2'])).run() 

Diese Anforderung wird nur die key2 Rekord in response zurück.

> len(response.items) 
> result = int(1) 

Wenn ich die Abfrage in der Data Explorer ausführen, bekomme ich beide Datensätze.

Data Explorer Testanforderung:

r.db("user_data_sets").table("indexes").getAll(r.args(['key1', 'key2'])) 

2 rows returned. Displaying rows 1-2 

ich bin irgendwie zu einem hier Verlust. Ich bin mir nicht sicher, ob das ein Treiberfehler/-problem oder eine Syntax-Eigenart oder etwas ganz anderes ist. Google hat nichts Aufschlussreiches hervorgebracht.

Antwort

1

Getestet habe ich gerade dies und bekam die richtigen Ergebnisse:

RethinkDB Version:

rethinkdb 2.3.4 (CLANG 7.3.0 (clang-703.0.31)) 

RethinkDB Python-Modul:

rethinkdb==2.1.0.post2 

Hier ist meine Python-Code:

r.db("test").table("so1").insert({"id":1}).run(conn) 
r.db("test").table("so1").insert({"id":2}).run(conn) 
list(r.db("test").table("so1").get_all(r.args([1, 2])).run(conn)) 
# [{'id': 2}, {'id': 1}] 

Und die Ergebnisse in der Web-Oberfläche

example image

Wenn Sie eine völlig neue Tabelle erstellen und nur diese beiden Dokumente einfügen. Sind die Ergebnisse gleich?

+0

Ja - Ich war gerade auf https://rethinkdb.com/api/python/to_array/ in den Dokumenten gekommen. Genau das empfehlen sie für kleine Sets. Ich denke, ich habe versucht, den Cursor falsch zu verwenden – getglad

+0

Lassen Sie mich wissen, wenn Sie weitere Fragen @getglad haben! – dalanmiller