diff --git a/packages/ezsLodex/src/reduceQuery.js b/packages/ezsLodex/src/reduceQuery.js index ffedfd874..3328e2dc5 100644 --- a/packages/ezsLodex/src/reduceQuery.js +++ b/packages/ezsLodex/src/reduceQuery.js @@ -49,7 +49,7 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) throw new Error(`Unknown reducer '${reducer}'`); } - const { map, reduce, finalize } = reducers[reducer]; + const { map, reduce, finalize, fieldname } = reducers[reducer]; const fds = Array.isArray(field) ? field : [field]; const fields = fds.filter(Boolean); const collName = String('mp_').concat( @@ -79,21 +79,24 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) const findFilter = {}; if (minValue) { - findFilter.value = { + const minFilter = { $gte: Number(minValue), }; + findFilter[fieldname('value')] = { + ...minFilter, + }; } - if (maxValue) { - findFilter.value = { - ...(findFilter.value || {}), + const maxFilter = { $lte: Number(maxValue), }; + findFilter[fieldname('value')] = { + ...maxFilter, + }; } - const [order, dir] = String(orderBy).split('/'); const sort = order && dir ? ({ - [order]: dir === 'asc' ? 1 : -1, + [fieldname(order)]: dir === 'asc' ? 1 : -1, }) : ({}); const cursor = result.find(findFilter); const count = await cursor.count(); diff --git a/packages/ezsLodex/src/reducers/count.js b/packages/ezsLodex/src/reducers/count.js index 33c5bab67..6c9c886ff 100644 --- a/packages/ezsLodex/src/reducers/count.js +++ b/packages/ezsLodex/src/reducers/count.js @@ -23,3 +23,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/distinct.js b/packages/ezsLodex/src/reducers/distinct.js index ddd864506..661f5e830 100644 --- a/packages/ezsLodex/src/reducers/distinct.js +++ b/packages/ezsLodex/src/reducers/distinct.js @@ -40,3 +40,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/graph.js b/packages/ezsLodex/src/reducers/graph.js index 55b41c35f..d58361ee6 100644 --- a/packages/ezsLodex/src/reducers/graph.js +++ b/packages/ezsLodex/src/reducers/graph.js @@ -69,3 +69,13 @@ module.exports.finalize = function finalize(key, value) { } return obj; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value.weight'; + } + if (name === 'label') { + return 'value.source'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/groupby.js b/packages/ezsLodex/src/reducers/groupby.js index dc1357e12..2374464f3 100644 --- a/packages/ezsLodex/src/reducers/groupby.js +++ b/packages/ezsLodex/src/reducers/groupby.js @@ -33,3 +33,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/keys.js b/packages/ezsLodex/src/reducers/keys.js index 17fa33cc8..2419ae90d 100644 --- a/packages/ezsLodex/src/reducers/keys.js +++ b/packages/ezsLodex/src/reducers/keys.js @@ -19,3 +19,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/max.js b/packages/ezsLodex/src/reducers/max.js index 2b686653e..75e9a774a 100644 --- a/packages/ezsLodex/src/reducers/max.js +++ b/packages/ezsLodex/src/reducers/max.js @@ -31,3 +31,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/merge.js b/packages/ezsLodex/src/reducers/merge.js index 8e15470da..103a99b28 100644 --- a/packages/ezsLodex/src/reducers/merge.js +++ b/packages/ezsLodex/src/reducers/merge.js @@ -50,3 +50,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/min.js b/packages/ezsLodex/src/reducers/min.js index 3656427a3..702667e12 100644 --- a/packages/ezsLodex/src/reducers/min.js +++ b/packages/ezsLodex/src/reducers/min.js @@ -31,3 +31,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/pairing.js b/packages/ezsLodex/src/reducers/pairing.js index 3b9b7a7a1..f684762a0 100644 --- a/packages/ezsLodex/src/reducers/pairing.js +++ b/packages/ezsLodex/src/reducers/pairing.js @@ -48,3 +48,13 @@ module.exports.finalize = function finalize(key, value) { } return obj; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value.weight'; + } + if (name === 'label') { + return 'value.source'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/stats.js b/packages/ezsLodex/src/reducers/stats.js index b0595eb22..4fb19c10e 100644 --- a/packages/ezsLodex/src/reducers/stats.js +++ b/packages/ezsLodex/src/reducers/stats.js @@ -63,6 +63,10 @@ module.exports.finalize = function finalize(key, value) { return value; }; -module.exports.finalize = function finalize(key, value) { - return value; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value.count'; + } + return '_id'; }; diff --git a/packages/ezsLodex/src/reducers/total.js b/packages/ezsLodex/src/reducers/total.js index 4da227eb4..092c3fef8 100644 --- a/packages/ezsLodex/src/reducers/total.js +++ b/packages/ezsLodex/src/reducers/total.js @@ -35,3 +35,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +}; diff --git a/packages/ezsLodex/src/reducers/ventilate.js b/packages/ezsLodex/src/reducers/ventilate.js index 76defaa7c..5932da194 100644 --- a/packages/ezsLodex/src/reducers/ventilate.js +++ b/packages/ezsLodex/src/reducers/ventilate.js @@ -31,3 +31,10 @@ module.exports.reduce = function (key, values) { module.exports.finalize = function finalize(key, value) { return value; }; + +module.exports.fieldname = function (name) { + if (name === 'value') { + return 'value'; + } + return '_id'; +};