猫鼬的新手。我能够获得两个集合并传递可选的匹配值-
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
]
};
谢谢。