我的文件如下:
{
"_id" : ObjectId("58b714f753e4a2105c002416"),
"routes" : [
{
"legs" : [
{
"duration" : {
"text" : "6 mins",
"value" : 348
},
"traffic_speed_entry" : [],
}
],
"warnings" : [],
}
],
"time" : "01/03/2017 18:37:43"
}
如何投影具有时间和持续时间的表格(每个数组元素一行)?
我能得到的最好的是:
db.getCollection('testcoll').find({}, {time:1, routes: 1})
答案 0 :(得分:1)
您需要使用聚合来展平数组并投影值。
db.getCollection('testcoll').aggregate({
$unwind: "$routes"
}, {
$unwind: "$routes.legs"
}, {
$project: {
time: 1,
duration: "$routes.legs.duration",
_id: 0
}
})