Mongoose:高效地追加多个记录及其子记录

时间:2017-10-19 09:32:13

标签: json node.js mongodb mongoose

我正在构建Node / MongoDB / Mongoose同步服务器应用程序。

我的架构的精简版本如下所示:

let dayTimeline = new mongoose.Schema({
  deviceId: { type: String, trim: true, required: true, index: true }, /* device identifier */
  day:      { type: Number, required: true, index: true },
  started:  { type: Number, required: true, default: 0 }, /* started in seconds from 1970 */
  ended:    { type: Number, required: true, default: 0 }, /* ended in seconds from 1970 */
  duration: { type: Number, required: true, default: 0 }, /* duration in seconds from 1970 */
  timeline: [{ type: mongoose.Schema.Types.ObjectId, ref: 'TimelineItem' }]
}

其中timeline属性是对以下实例的引用数组:

let timelineItem = new mongoose.Schema({
    deviceId: { type: String, trim: true, required: true, index: true }, /* device identifier */
    started:  { type: Number, required: true, default: 0 }, /* started in seconds from 1970 */
    ended:    { type: Number, required: true, default: 0 }, /* ended in seconds from 1970 */
    duration: { type: Number, required: true, default: 0 } /* duration in seconds from 1970 */
                });

客户端应用程序将20个dayTimeline json词典的数组传递给服务器子应用程序,每个应用程序包含一个包含10-20个timelineItem json词典的数组。

我希望从客户端传递的数据覆盖/更新服务器数据。

使用mongoose插入/更新数据的最有效方法是什么?

在客户端应用程序中,我使用Realm,我可以为两个对象指定一个主id键,它是deviceId和启动值的组合,这些值构成唯一标识符 - 我认为我可以做到在服务器上类似的东西,但我对猫鼬的知识非常有限。

0 个答案:

没有答案