【发布时间】:2016-06-28 04:46:17
【问题描述】:
我一直在浏览 Mongoose 文档,但我认为我对它的工作原理缺少一些基本的了解。
我要做什么
我正在进行第三方 API 调用,它返回的结构类似于
Route
|__Train 1 on Route
|__Upcoming Station (with ID)
| |__Time to this station
|__Upcoming Station (with ID)
| |__Time to this station
...
|__Train 2
...
我的目标是将其格式化为这样的文档
tableId : String,
stations : [{
stopId : String,
incoming : [{
vehicleId : String,
timeAway : { type: Number, min: 0, max: 3000 },
lastUpdated : { type: Date, default: Date.now }
}]
}],
我目前正在尝试检查每辆火车的接收数据,以及每个即将到来的车站,并将预计到达时间插入车站列表。重要的部分是火车 1 和火车 2 可能都到达给定的车站,我只想要一个具有多个预测的车站元素。问题是,我无法使用 upsert 执行 findOneAndUpdate,因为该文档尚不存在。
从关于子文档的文档 (here) 中,我尝试了 push 和 addToSet,但这些只是为每个预测创建一个子文档。例如我会得到:
[{
stopId: 1234,
incoming : [{
vehicleId : 11,
timeAway : 200
}]
},
stopId: 1234,
incoming : [{
vehicleId : 22,
timeAway : 400
}]
}]
我想去哪里:
[{
stopId: 1234,
incoming : [{
vehicleId : 11,
timeAway : 200
},{
vehicleId : 22,
timeAway : 400
}]
}]
我觉得我缺少创建此文档的一些基本方面。
【问题讨论】:
标签: javascript node.js mongodb mongoose mean-stack