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

不允许的字段类型数组-如何使用MongoDBv3.0在聚合中创建数组,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我的文档结构是 { _id : '', objects: { dyn1: { prop1: val1, prop2: val2 }, dyn2: { prop1: val1, prop2: val2 }, dyn3: { prop1: val1, prop2:

我的文档结构是

{
    _id : '',
    objects: {
        dyn1: {
            prop1: val1,
            prop2: val2
        },
        dyn2: {
            prop1: val1,
            prop2: val2
        },
        dyn3: {
            prop1: val1,
            prop2: val2
        }
    }
}
我想对
对象的内部对象进行搜索、排序和限制。我找到了一个适用于MongoDBv3.2的解决方案。我需要做的第一步是使每个内部对象成为单独文档的一部分
$unwind
可以帮助我们,但它仅适用于阵列。所以,我的第一阶段是以数组的形式进行投影

{
    $project: {
         asArray: [
            '$objects.dyn1',
            '$objects.dyn2',
            '$objects.dyn3'
        ]
    }
}
阵列的创建在MongoDBv3.2中运行良好。但对于MongoDBv3.0,它抛出了以下错误:

异常:对象表达式MongoDB聚合数组中不允许的字段类型数组。


如何避免此错误,并在MongoDBv3.0中将值作为数组进行投影?是否有任何解决方法?

对象不是数组吗?否@israel.zin对象不是数组so,对象是一个包含3个其他对象作为字段的对象:dyn1、dyn2、dyn3?那么,您使用哪个参数对字段进行排序?我将使用
prop1
prop2
对字段进行排序。如果所说的
prop1
小于10,则查询应返回
prop1
满足条件的所有内部对象。同样,也可以应用排序、跳过、限制等