Я просто хочу дать несколько советов, чтобы вы могли понять это позже. Во-первых, вы можете использовать typeOf
, чтобы найти тип данных.
r.table('dummy').insert({f: "foo"}).typeOf()
"OBJECT"
Знаете, если вы возвращаете объект. Затем вы переходите к документу RethinkDB, попробуйте найти аналогичную функцию. Хорошее предположение get_field
http://rethinkdb.com/api/javascript/get_field/
И get_field можно назвать на объекте:
sequence.getField (атр) → Последовательность
singleSelection.getField (атр) → значение
объекта. getField (attr) → значение
Посмотрим, что он возвращает:
r.table('dummy').insert({f: "foo"}).getField('generated_keys').typeOf()
"ARRAY"
Давайте найдем команду для возврата элемента в массив. Вы можете снова просмотреть документ и будете замечены командой nth
, чтобы вернуть n-й элемент из массива. Поэтому мы можем сделать это сейчас:
r.table('dummy').insert({f: "foo"}).getField('generated_keys').nth(0)
"c2b1bf69-a926-4c27-b1a6-011d47c700df"
Давайте попробуем его упростить. Использование getField
аннуируется. Для того, чтобы сделать его коротким, вы можете использовать кронштейн ()
, чтобы получить одно поле от объекта
r.table('dummy').insert({f: "foo"})('generated_keys').nth(0)
"77f4aca6-9219-494e-9998-23eb9abcd5e0"
Но используя nth
также поле annyoying немного. Можем ли мы сделать это коротким. К счастью, скобка также может быть вызвана массивом. http://rethinkdb.com/api/javascript/bracket/
The() команда также принимает целые аргументы в виде смещений массива, как п-й команды.
Объединить все, что мы имеем:
r.table('dummy').insert({f: "foo"})('generated_keys')(0)
Это все бегут direcly Проводнике данных, но я думаю, что вы можете легко конвертировать их в Python, глядя на JavaScript и перевести на Python.