如何在 mongodb 的聚合查询中获取虚拟字段?

问题描述 投票:0回答:1

我的模型有一个虚拟字段 show:

modelSchema.virtual('show').get(function () {
    return true
})

现在,当我在nodeJS中使用查询与 find 像这样。

model.find({"$license_id": license_id})

结果,我有一个虚拟字段 show.

如果我用 aggregation 像这样。

model.aggregate([
    {
        $match: {
            $expr: { $eq: ["$license_id", license_id] }
        }
    }
])

结果,我没有虚拟字段。show.

如何获得虚拟字段 aggregation 查询?你有什么办法解决这个问题吗?

node.js mongodb mongoose mongodb-query mongoose-schema
1个回答
1
投票

你可以使用 $addFields$项目 阶段,将该领域纳入聚合。美德 是不在数据库中持久化的属性。你必须尝试一个函数来获得所需的值。

model.aggregate([
    {
        $match: {
            $expr: { $eq: ["$license_id", license_id] }
        }
    },
   $addFields: {
        show: true
    }
])
© www.soinside.com 2019 - 2024. All rights reserved.