如何使用 JavaScript 在 ReThinkDB 的 ReQL 中对数组应用过滤器
How to apply filter on array in ReQL in ReThinkDB using JavaScript
在下面的 JSON 中,我想选择销售额 > 12500 的记录。我如何在 ReThinkDB 和 ReQL 中做到这一点?
JSON 是:
{
"address": {
"address_line1": "Address Line 1" ,
"address_line2": "Address Line 2" ,
"city": "Kochin" ,
"country": "India" ,
"state": "Kerala"
} ,
"id": "bbe6a9c4-ad9d-4a69-9743-d5aff115b280" ,
"name": "Dealer 1" ,
"products": [
{
"product_name": "Stabilizer" ,
"sales": 12000
} ,
{
"product_name": "Induction Cooker" ,
"sales": 14000
}
]
}, {
"address": {
"address_line1": "Address Line 1" ,
"address_line2": "Address Line 2" ,
"city": "Kochin" ,
"country": "India" ,
"state": "Kerala"
} ,
"id": "f033a4c2-959c-4e2f-a07d-d1a688100ed7" ,
"name": "Dealer 2" ,
"products": [
{
"product_name": "Stabilizer" ,
"sales": 13000
} ,
{
"product_name": "Induction Cooker" ,
"sales": 11000
}
]
}
要获取任何产品的至少一个销售额超过 12,500 的所有文档,您可以在 ReQL 中使用以下过滤器:
r.table('t')
.filter(r.row('products').contains(function(product) {
return product('sales').gt(12500);
}))
这利用了您可以将函数传递给 contains
的事实。 array.contains(fun)
returns true
恰好如果 fun
returns true
对于 array
中的至少一个元素。
您可以在 http://rethinkdb.com/api/javascript/contains/
找到更多示例
在下面的 JSON 中,我想选择销售额 > 12500 的记录。我如何在 ReThinkDB 和 ReQL 中做到这一点?
JSON 是:
{
"address": {
"address_line1": "Address Line 1" ,
"address_line2": "Address Line 2" ,
"city": "Kochin" ,
"country": "India" ,
"state": "Kerala"
} ,
"id": "bbe6a9c4-ad9d-4a69-9743-d5aff115b280" ,
"name": "Dealer 1" ,
"products": [
{
"product_name": "Stabilizer" ,
"sales": 12000
} ,
{
"product_name": "Induction Cooker" ,
"sales": 14000
}
]
}, {
"address": {
"address_line1": "Address Line 1" ,
"address_line2": "Address Line 2" ,
"city": "Kochin" ,
"country": "India" ,
"state": "Kerala"
} ,
"id": "f033a4c2-959c-4e2f-a07d-d1a688100ed7" ,
"name": "Dealer 2" ,
"products": [
{
"product_name": "Stabilizer" ,
"sales": 13000
} ,
{
"product_name": "Induction Cooker" ,
"sales": 11000
}
]
}
要获取任何产品的至少一个销售额超过 12,500 的所有文档,您可以在 ReQL 中使用以下过滤器:
r.table('t')
.filter(r.row('products').contains(function(product) {
return product('sales').gt(12500);
}))
这利用了您可以将函数传递给 contains
的事实。 array.contains(fun)
returns true
恰好如果 fun
returns true
对于 array
中的至少一个元素。
您可以在 http://rethinkdb.com/api/javascript/contains/