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

Javascript 在Mongodb/Mongoose聚合中的子集内应用$cond,javascript,node.js,mongodb,mongoose,aggregation-framework,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)

假设我有这个文档:

{ "_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"]
            }
        }
    }
 ])

成功了。非常感谢你。