不允许的字段类型数组 - 如何使用MongoDBv3.0在聚合中创建数组

时间:2017-02-21 06:32:51

标签: mongodb aggregation-framework

我的文档结构是,

{
    _id : '',
    objects: {
        dyn1: {
            prop1: val1,
            prop2: val2
        },
        dyn2: {
            prop1: val1,
            prop2: val2
        },
        dyn3: {
            prop1: val1,
            prop2: val2
        }
    }
}

我想对objects的内部对象进行搜索,排序和限制。我找到了一个适用于MongoDBv3.2的解决方案。我需要做的第一步是使每个内部对象成为单独文档的一部分。 $unwind可以帮助我们,但它只适用于数组。所以,我的第一个阶段是作为数组投影,

{
    $project: {
         asArray: [
            '$objects.dyn1',
            '$objects.dyn2',
            '$objects.dyn3'
        ]
    }
}

数组的创建在MongoDBv3.2中运行良好。但是使用MongoDBv3.0时,它会抛出以下错误:

exception: disallowed field type Array in object expression MongoDB aggregation array.

如何避免此错误并将项目值作为MongoDBv3.0中的数组?有没有可行的解决方法?

0 个答案:

没有答案