【问题标题】:How to insert ref objectId in nodejs?如何在nodejs中插入ref objectId?
【发布时间】:2022-01-26 00:59:08
【问题描述】:
  1. 主要型号

{
  name: {
    type: String,
    trim: true,
    required: true
  },
  carModels: [{
    type: ObjectId,
    ref: 'CarModel'
  }]
}
  1. 第二个模型

  {
    name: {
      type: String,
      trim: true,
      required: true
    },
    carModels: [
      {
        type: ObjectId,
        ref: 'CarModel'
      }
    ]
  },
  1. 第三个模型

{
  name: {
    type: String,
    trim: true,
    required: true
  }
},

我在这里尝试插入这样的数据

{
  "name": "test",
  "phoneNumber": "0123456789",
  "email": "m@m.com",
  "carMakes": [{
    "name": "BMW",
    "carModels": [{
      "_id": "some id"
    }]
  }]
}

它给了我类似的错误

carMakes.0: Cast to [ObjectId] failed for value

这里是创建函数

export const create = async data => {
  const result = await Booking(data).save();
  return result;
};

谁能告诉我这里缺少什么..我正在学习 nodejs

【问题讨论】:

  • 你缺少一个函数Booking
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript node.js mongoose


【解决方案1】:

我认为问题在于您传递给 carModel_id 并且由于您将类型设置为 ObjectId 它必须采用有效格式“12 字节二进制字符串或 24 hex byte string" 和 "some id" 如果你发送它不是有效的。

你可以通过isValidObjectId()函数检查你的id是否有效。

或者您可以轻松生成ObjectId

var mongoose = require('mongoose');
var id = new mongoose.Types.ObjectId();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2020-11-08
    • 2020-12-05
    • 1970-01-01
    • 2019-06-25
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多