I have two tables records
[
{
"payload": {
"uuid": "123",
"version": "1.0.0"
},
"record_id":"rec-123"
},
{
"payload": {
"uuid": "456",
"version": "1.0.1"
},
"record_id":"rec-456"
}
]
and records_master
[
{
"version": {
"mode": 1
},
"id": "rec-123",
"title": "Test-123"
},
{
"version": {
"mode": 0
},
"title": "Test-456",
"id": "rec-456"
}
]
I want to get records for matching payload
.uuid
and payload
.version
in records
and version
.mode
should be 1
in records_master
.
data = r.table("records").filter(
lambda doc:
(doc["payload"]["uuid"]== <some_value>) &
(doc["payload"]["version"]== <some_version>)
).coerce_to("array")
.run(connection)
This gives me all records
for a matching payload
.uuid
and payload
.version
.
But unable to make it work for eqJoin
with records-master
data = r.table('records').eq_join('record_id', r.table('records-master')).filter(
lambda doc,master:
(doc["payload"]["uuid"]== <some-value>) &
(doc["payload"]["version"]== <some-version>) &
(master["version"]["mode"] ==1)
).run(connection)