Новое в пн goose. Мне удалось получить две коллекции и передать необязательное значение совпадения -
const lookup = {
from: 'collection1',
localField: '_id',
foreignField: 'collection2_id',
as: 'field'
};
Collection1Schema.aggregate()
.lookup(lookup)
.match(query);
Показывает ожидаемый результат. И как вы думаете, матч будет работать здесь? Я хочу использовать match
как find()
, где вы можете передать любой объект, и он найдет для вас.
Итак, теперь, пока выполняется запрос, я хочу вычислить некоторые значения в collection2 и вернуть это вместо этого результат вычисления.
вычисление будет похоже на (key1-key2)/(key3-key4)
. Можно ли передать пользовательскую функцию для выполнения этой работы?
Итак, это будет выглядеть следующим образом.
Вывод
Collection1 {
abc: 'value',
bde: 'value',
field: [ // collection2
{ c: 'value', d: 'value', rate: 38 }, // rate after `(e-f)/(g-h)` calculation
{ c: 'value', d: 'value', rate: 38 } // rate after `(e-f)/(g-h)` calculation
{ c: 'value', d: 'value', rate: 38 } // rate after `(e-f)/(g-h)` calculation
]
};
Спасибо .