【问题标题】:Mongoose schema TypeError :Undefined type `ObjectId` at. Did you try nesting Schemas? You can only nest using refs or arraysMongoose 模式 TypeError:未定义类型“ObjectId”。您是否尝试过嵌套模式?您只能使用 refs 或数组进行嵌套
【发布时间】:2018-01-18 01:41:53
【问题描述】:

在为集合创建架构并插入类型为 objectId(converting it to String) 的文档时,出现未定义类型错误。

const mongoose = require("mongoose");
let testSchema = new mongoose.Schema({
  date: {type: Date, required: true},
  test_id: {type: mongoose.Types.ObjectId().toString(), required: true},
}, {collection: 'timeslotsTest'}); 
let testModel = mongoose.model("test", testSchema);

timeslotModel.create({
  "date":"2017/11/21",
  "test_id":"1"
}

【问题讨论】:

  • 不,你不能在这里做ObjectId().toString()。如果你想要一个“字符串”,那么它是type: String。但是你真的应该让ObjectId 保持原样。占用更少的空间,这样会更好。
  • 谢谢。我是 mongoDB 的新手。好奇 - 是不是无法将 ObjectId 类型转换为字符串或者我的方式是错误的?

标签: mongoose schema typeerror


【解决方案1】:

您实际上并不需要提供 id。它会自动创建一个 id。因此,以下示例将对您有所帮助。

var UserSchema = new Schema({
   //username: String
username: {type: String, unique: true}
});

var JobSchema= new Schema({
name: String,
members: [{type: mongoose.Schema.Types.ObjectId, ref: 'UserModel'}]
});

// Mongoose Model definition
var UserModel = mongoose.model('UserModel', UserSchema);
var JobModel= mongoose.model('JobModel', JobSchema);

【讨论】:

    【解决方案2】:

    我遇到了这个问题,因为我将 ObjectId 设置为子文档架构

    import { ObjectID } from "mongodb";
    
    const groupSchema = new Schema({
        group_name: String,
        members: [{
            member_id: String,
            member_name: String
        }],
        chat: [{
            _id: ObjectId, //changed to 'String', resolved this issue
            message: String,
            sender_id: String,
            status: String,
        }]
    })
    

    【讨论】:

      【解决方案3】:

      mongoose.Types.ObjectId()
      是ObjectId的构造函数,改用
      mongoose.Schema.Types.ObjectId
      Mongoose schema reference and undefined type 'ObjectID'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-06
        • 2015-03-10
        • 1970-01-01
        • 2015-03-29
        • 1970-01-01
        • 2014-08-04
        • 2014-03-02
        • 1970-01-01
        相关资源
        最近更新 更多