我有这样的对象:
{子状态:{更新日期:3 },状态更新时间:1 },
{子状态:空,状态更新时间:2)
我需要按如下方式有条件地对对象进行排序:如果subStatus字段存在,则相对于subStatus.updatedAt字段;如果subStatus字段不存在,则相对于statusUpdatedAt字段
如果两个字段都不存在,则对象应排序到列表末尾
我使用了以下查询:
"sort": {
"_script": {
"type": "number",
"order": "asc",
"script": {
"lang": "painless",
"source": "if(doc['subStatus'].value != null) { return doc['subStatus.updatedAt'].value } else { return doc['statusUpdatedAt'].value }"
}
}
}
但我得到一个错误:“在类型为[]的Map中找不到[subStatus]的字段”
你能告诉我怎样解决这个问题吗?
1条答案
按热度按时间mrwjdhj31#
尝试按“大小”检查。