RethinkDB:​​相当于“select where field in in(items)”

时间:2014-01-25 04:29:51

标签: rethinkdb

我有一个看起来像这样的表:

[                                                                                                                                                                                                              
    { "name": "Alpha", "values": {                                                                                                                                                                             
        "someProperty": 1                                                                                                                                                                                      
    }},                                                                                                                                                                                                        
    { "name": "Beta", "values": {                                                                                                                                                                              
        "someProperty": 2                                                                                                                                                                                      
    }},                                                                                                                                                                                                        
    { "name": "Gamma", "values": {                                                                                                                                                                             
        "someProperty": 3                                                                                                                                                                                      
    }}                                                                                                                                                                                                         
]

我想选择someProperty不在某些值数组中的所有记录(例如,someProperty不在[1, 2]中的所有记录。我想要获取完整记录,而不仅仅是someProperty的值。

我应该如何使用RethinkDB执行此操作?

1 个答案:

答案 0 :(得分:5)

在python中它将是:

table.filter(lambda doc: r.not(r.expr([1,2]).contains(doc["someProperty"]))

如果数组来自子查询,并且您不想多次执行此操作:

subquery.do(lambda array:
    table.filter(lambda doc: r.not(array.contains(doc["someProperty"]))))