На моем RethinkDB 1.16.2-1 на Linux у меня есть таблица «продуктов», у которой есть массив «категорий» и массив «моделей»:Возврат MAX() и MIN() в одном запросе
{
"name": "ABC Cable Series" ,
"categories": [
"Analog Audio>Instrument>Cables" ,
"Analog Audio>Microphone Cables"
] ,
"models": [
{
"modelCode": "ABC-1" ,
"ssp": 11.95 , ...
} ,
{
"modelCode": "ABC-2" ,
"ssp": 15.95 , ...
}
]
} , ...
Мне нужно получить как модель минимальной, так и максимальной цены (ssp) в продуктах, содержащих данную категорию продуктов. Я в настоящее время получить максимальную цену, как это:
r.db("store").table("products").filter(function(prod) {
return prod("categories").contains(
function(cat){return cat.match("^Analog Audio>")
})
}).concatMap(function(doc) {
return doc("models")("ssp")
}).max()
кроме работы 2 запросов, есть более эффективный способ, чтобы получить значение как MAX и MIN в одном запросе?
С другой стороны, лучше всего было бы вернуть список значений SSP и вычислить MAX и MIN в приложении (массив будет содержать максимум 200 цен). Как вы думаете? – Smyrnian