我有一个简单的JSON结构,例如
{'a' : 'value' , 'b': ['b1','b2','b3'] , c: 'value'} ,
{ 'a' : 'value' , 'b': ['b5','b6','b7'] , c: 'value'},
and so on . . .
我想知道如何过滤只有b1或b2的json数据。 在本文档[1]中并不是很清楚。我尝试运行以下查询,但我很确定,这不是正确的方法。
r.db('mine').table('business')
.filter([{'categories':'Clothing'}])
答案 0 :(得分:3)
b
属性中值为b1
的所有行都可以使用contains
方法。使用contains
方法(使用`filter方法)来执行此操作:
r.db('mine')
.tables('business')
.filter(function (row) { return row('b').contains('b1'); })
.run(conn)
在Ruby中,看起来像这样:
r.db('test')
.table('hello')
.filter{ |row| row['b'].contains('b1') }
.run(conn)
在Python中,看起来像这样:
r.db('test')
.table('hello')
.filter(lambda row: row['b'].contains('b1'))
.run(conn)
b
属性中值为b1
且值为b2
的所有行,您只需使用contains
方法使用and
方法。的JavaScript
r.db('mine')
.tables('business')
.filter(function (row) {
return row('b').contains('b1').and(row('b').contains('b2'));
})
.run(conn);
的Python:
r.db('test')
.table('hello')
.filter(lambda row:
row['b'].contains('b1') & row['b'].contains('b2')
)
.run(conn)
.setDifference
方法和isEmpty
方法。的JavaScript
r.db('mine')
.tables('business')
.filter(function (row) {
return row('b').contains('b1').and(row('b').contains('b2'));
})
.run(conn);
的Python:
r.db('test')
.table('hello')
.filter(lambda row:
row['b'].contains('b1') & row['b'].contains('b2')
)
.run(conn)