我正在尝试使用汇总和$lookup
中的某些日期进行计算。我最初想到的是在聚合中使用函数,但不允许使用JavaScript。
{
$lookup: {
from: "sales",
let: { user: "$_id" },
pipeline: [
$project: {
time: //// CALCULATE TIME DIFFERENCE BETWEEN $createdAt and $startedAt,
}
]
as: "sales"
}
}
有什么方法可以在我的$project
中返回类似的内容吗?
const calculate = (created, started) => {
const result = moment(created).diff(moment(started))
return result
}
答案 0 :(得分:2)
正如我在另一个问题的可能重复部分中指出的那样,您应该使用aggregation pipeline operators中的一个。特别是,您应该使用$subtract
运算符,该运算符也可以用于日期。
{
$lookup: {
from: "sales",
let: { user: "$_id" },
pipeline: [
$project: {
time: { $subtract: ["$createdAt", "$startedAt"]}
}
]
as: "sales"
}
}