需要构建JSONata查询的帮助

时间:2018-04-05 22:33:46

标签: jsonata

我正在尝试使用try.jsonata.org发票数据构建JSONata查询。

我想要提出的查询是select distinct OrderID where Order.Product.Price is < 50?

我无法弄清楚如何使用方括号谓词中的谓词来解决这个问题...当我试图超越$ .Account.Order时,我的尝试被挫败了。产品阵列。

使用$ map和$ reduce我能够提出this rather complex solution ...它仍然没有正确处理重复的OrderID。 (我发现已请求重复删除问题here

问:在JSONata中表达此查询的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为this可以满足您的需求:

Account.Order[Product.Price.($ < 50)].OrderID

谓词中的表达式(针对每个Order进行测试)将生成一个布尔数组(每个Product.Price一个)。如果true中的任何布尔值为true,则生成的谓词将评估为OrderID,因为隐式应用了$boolean function的语义。

总体而言,该表达式将为每个Order返回ProductPrice至少有一个50 def function(w, h): #function here is the bmi calculator bmi = w / h ** 2 return("Your BMI is " + str(bmi)) bmi_user = function(weight, height) 小于def bmi_calculator(w, h): return w / h ** 2