我有一个包含类似
的mongo文档{date: [2018, 3, 22]}
当我尝试将这个字段连接成平面JSON结构时,我总是得到一个包含0个元素的数组,例如。只用
提取年份db.getCollection('blah').aggregate([
{$project: {year: "$date.0"}}
])
我得到了
{"year" : []}
即使匹配相似的表达式也能正常工作,例如
db.getCollection('blah').aggregate([
{$match: {"$date.0": 2018}}
])
选择我期望的文件。
我做错了什么?我已经搜索过mongo文档和stackoverflow,但却找不到任何内容。
答案 0 :(得分:2)
对于$project
,您应该使用$arrayElemAt
代替仅用于查询的点符号。
db.getCollection('blah').aggregate([
{$project: {year: { $arrayElemAt: [ "$date", 0 ] }}}
])
更多here