У меня есть ниже в JSON RethinkDB таблицеФильтр вложенных полей в строках RethinkDB на основе нескольких значений
[{"pid": 0,
"sk": [
{
"sid": 30,
"et": 3
},
{
"sid": 22,
"et": 10
},
{
"sid": 30,
"et": 10
}
],
"wc": [
{
"wid": 29,
"et": 8
},
{
"wid": 30,
"et": 2
},
],
"dom": [
{
"did": 7,
"et": 2
},
{
"did": 6,
"et": 3
}
],
"ex": 17,
"av": 12,
"lc": "FRA"
}
Как это есть несколько тысяч строк в таблице RethinkDB.
Моя цель заключается в поиске данных С.К., туалет
Например: Входной сигнал может быть
"СК": [{ "Sid": 21, "Et": 5}, {» sid ": 21," et ": 5}] После фильтрования при вышеуказанном условии результирующий набор данных снова должен быть отфильтрован для поля wc " wc ": [{" wid ": 1," et ": 7}, { «wid»: 4, «et»: 5}, {«wid»: 0, «et»: 7}]
Мне нужны выходные записи, которые содержались в данном входе , как в таблице, например , sk: [{sid: 2, et: 8}, {s id: 3, et: 6}, {sid: 3, et: 7}, {sid: 4, et: 9}] должны отображаться в выходном наборе данных, если поля ввода ниже [{sid: 3, et: 7}, {SID: 4, и др: 9}]
Я использовал ниже запроса, когда я {с.и.д.: ET} в одном наборе:
r.db('testdb').table('f_tab').
filter(
{
"sk": [{"0":"8"},{"1":"5"},{"8":"5"},{"3":"8"},{"12":"4"}]
}).filter(
{
"wc": [{"0":"7"},{"7":"9"},{"2":"6"},{"8":"4"},{"4":"7"}]
}).getField('pid')
Теперь я разделить значения SID и ЭТ для лучшее управление на стороне сервера код
Пробовал использовать r.row внутри фильтра, но он не работает Как я могу фильтровать на основе моего требования в python?
Каков наилучший подход для выполнения вложенных полей в этом режиме в перспективе производительности?
Большое спасибо mlucy! Это работает. Я думаю, что lamba не отображается в Rethinkdb Data explorer. Но работает внутри моего кода на Python (Django) –
Как проверить, что значение et больше или равно его значению? –
Например: я хочу проверить таблицу, в которой есть все записи, имеющие (et ge 5) ->, если моя запись таблицы имеет {'sid': 21, 'et': 7} также должна быть возвращена вместе с { 'sid': 21, 'et': 5}, если он есть. Не могли бы вы помочь мне в том, как использовать внутреннее выражение ge для значений et. –