javascript - 在 Mongodb/Mongoose 聚合的子集中应用 $cond

标签 javascript node.js mongodb mongoose aggregation-framework

假设我有这个文档:

{ "_id" : 1, "first_name" : "Matt", "roles": ['editor', 'publisher', 'siteAdmin'] }
{ "_id" : 1, "first_name" : "Harry", "roles": ['publisher', 'siteAdmin'] }
{ "_id" : 1, "first_name" : "Rob", "roles": ['editor'] }

现在我想使用 Mongoose 聚合($cond)来输出此文档。
我如何得到这个?我非常感谢您的帮助。

{ "first_name" : "Matt", "isSiteAdmin": true }
{ "first_name" : "Harry", "isSiteAdmin": true }
{ "first_name" : "Rob", "isSiteAdmin": false }

最佳答案

像下面这样的管道应该适合您

YourModel.aggregate([
    {
        $project: {
            _id: 0,
            first_name: 1,
            isSiteAdmin: {
                $setIsSubset: [["siteAdmin"], "$roles"]
            }
        }
    }
 ])

关于javascript - 在 Mongodb/Mongoose 聚合的子集中应用 $cond,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40810752/

相关文章:

node.js - 为什么 Sequelize addAssociations 不起作用?

javascript - Alexa 问答技能

javascript - 如何在mongodb中查找数组中的元素?

mongodb - 如何在 Mongodb 中设置 java 驱动程序的读取首选项

javascript - 查找带有特定文本的 td,并在该文本之后立即对 td 进行操作?

javascript - 如何判断用户是否在我的页面上选择了文本

javascript - Highcharts - 饼图动态更改切片颜色

javascript - Heroku(Cedar) + Node + Express + Jade 子目录中的客户端 javascript 文件在本地与 foreman+curl 一起工作,但在推送到 Heroku 时不能

node.js - 在 MacOS 中使用 Homebrew 安装 Node 时卡住:fork.rb:49:in `write' : 管道损坏 (Errno::EPIPE)

django - 如何使用 MongoDB 在 Django REST 框架模型中获取字符串列表