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

Posted

技术标签:

【中文标题】在 Mongodb/Mongoose 聚合中的子集中应用 $cond【英文标题】:Applying $cond inside subset in Mongodb/Mongoose Aggregation 【发布时间】:2017-04-10 04:40:43 【问题描述】:

假设我有这个文件:

 "_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 

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

做到了。非常感谢。

以上是关于在 Mongodb/Mongoose 聚合中的子集中应用 $cond的主要内容,如果未能解决你的问题,请参考以下文章

聚合函数在页面刷新时复制 ng-repeat 中的项目。需要弄清楚如何停止重复。 Angularjs Mongodb mongoose

MongoDB/Mongoose - 与 geoNear 和子文档的聚合

MongoDB/Mongoose 一对多,在子节点中引用父节点 - 分组并加入

如何从 1 分钟的嵌套数组数据中聚合 OHLC 5 分钟(mongodb、mongoose)

mongoDB (mongoose增删改查聚合索引连接备份与恢复监控等等)

MongoDB Mongoose 聚合查询深度嵌套数组删除空结果并填充引用