【问题标题】:Bulk import mongodb collection based on the same property基于相同属性批量导入mongodb集合
【发布时间】:2018-03-03 13:35:03
【问题描述】:

我有一个来自 mySql 的旧数据库需要导入到 mongoDb,我已经创建了两个集合的新 mongoDb 架构,如下所示,

let Ticket = new Schema({
  ticket_no: String,
  title: String,
  logTickets: [{type: Schema.Types.ObjectId, ref: 'LogTicket'}]
});

let LogTicket = new Schema({
  user: String,
  timestamp: Date,
  log: String,
  ticket: {type: Schema.Types.ObjectId, ref: 'Ticket'}
});

我已经处理了到 json 的转换并测试了它在 Ticket 上的工作,但是对于提供每个 TicketLogTicket,我只有 ticket_no 作为这两者的链接器。

如何使用 mongoDb 通过 ticket_no 批量导入 LogTicket 以便填充每个 Ticket 集合?

【问题讨论】:

  • 您也可以使用virtuals.。如果你这样做了,那么你只需要写信给LogTicket,但如果你不需要写信给“两者”TicketLogTicket。将外键存储在“孩子”中通常更有意义,除非其意图是让孩子拥有多个父母。

标签: mongodb mongoose mongoose-schema mongoose-populate nosql


【解决方案1】:

使用猫鼬的填充功能

Ticket.
  findOne({ _id: refObjectId }).
  populate('logTickets').
  exec(function (err, ticket) {
    if (err) return throw err;
    console.log('The LogTickets are %s', ticket.logTickets);
  });

你从http://mongoosejs.com/docs/populate.html读到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-17
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多