我们可以在$ project语句中设置一个等于数组元素的新键吗?

时间:2015-05-31 04:09:44

标签: mongodb

在mongo中,我可以这样做:

db.HI.aggregate({$project: {new_val: '$tags.first'}})

然而,这不起作用:

db.HI.aggregate({$project: {new_val: '$my_array.0'}})

这是否意味着聚合不支持这种方式的数组?还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

目前,汇总框架尚未支持此功能,此 here there正在进行JIRA票证。

另一种方法是首先$unwind数组,然后通过_id$group解构数组文档。在分组文档中,使用$first group accumulator operator

检索第一个数组元素
db.HI.aggregate([
    { 
        "$unwind": "$my_array" 
    },
    { 
        "$group": {
            "_id": "$_id",
            "new_val": { "$first": "$my_array" }
        }
    }
])