不能参考另一个记录插入记录

时间:2018-08-23 13:31:43

标签: node.js mongodb mongoose

我有两个模型:platformplace (平台并放置在平台上)

平台

{
  name: {
    required: true,
    unique: true,
    type: String,
    empty: false
  },
  description: {
    required: false,
    type: String,
    empty: true
  }
}

地点

{
  name: {
    required: true,
    type: String,
    empty: false
  },
  platform: new Mongoose.Schema({
    type: Mongoose.Schema.Types.ObjectId,
    ref: PlatformSchema
  })
}

platform的名称必须唯一。首先,我生成平台列表。然后尝试生成此平台上的地点列表并收到错误。

WriteError({
  "code": 11000,
  "index": 1,
  "errmsg": "E11000 duplicate key error collection: test.places index: platform.ref.name_1 dup key: { : null }",
  "op": {
    "_id": "5b7ea477798f9c41f81c0234",
    "name": "top",
    "platform": {
      "_id":"5b7ea41b878b4a41abcfc952"
    }
  }
})

接收它,直到platform模式中存在“名称”字段的唯一索引为止。

我尝试通过多种方式插入place

PlaceRecord.insertMany([
  {
    name: "top",
    platform: platformDocumentInstance
  }
])

PlaceRecord.insertMany([
  {
    name: "top",
    platform: platformDocumentInstance
  }
])

PlaceRecord.insertMany([
  {
    name: "top",
    platform: platformDocumentInstance
  }
])

但是结果是一样的。请注意,插入了place成功的第一条记录,但是place的下一条记录抛出了异常。请帮忙。

1 个答案:

答案 0 :(得分:0)

您可以共享要插入的文档吗? 似乎您要首先插入的文档已将null插入为platform.ref.name,而当您插入第二个文档时,您的索引platform.ref.name_1将失败,因为已经有一个记录为null。