如果我在 ES 和 dynamoDB 中有以下資料。如何使用查詢計算總books_borrowed?
用戶
user_id: 1, name: "ABC", books_borrwoed: 5, unit_price: 10
user_id: 2, name: "dead", books_borrwoed: 5, unit_price: 10
我不能使用回圈,因為一個月內可能有超過 10k 條記錄。
uj5u.com熱心網友回復:
您可以使用sum 聚合,以獲取books_borrwed欄位的總和
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"field": "books_borrwoed"
}
}
}
}
搜索結果將是:
"aggregations": {
"total_books": {
"value": 10.0
}
}
更新 1:
如果您需要將每本書的價格乘以 5,您可以使用帶有總和聚合的腳本
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"script": {
"lang": "painless",
"inline": "doc['books_borrwoed'].value * 5"
}
}
}
}
}
搜索結果將是
"aggregations": {
"total_books": {
"value": 50.0
}
}
如果您想從資料中獲取值,可以使用以下查詢
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"script": {
"lang": "painless",
"inline": "doc['books_borrwoed'].value * doc['unit_price'].value"
}
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/330903.html
