我的文档结构是,
{
_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中的数组?有没有可行的解决方法?