代码之家  ›  专栏  ›  技术社区  ›  SoftTimur

引用类内的模式

  •  0
  • SoftTimur  · 技术社区  · 7 年前

    我的数据库中的用户在类中声明如下:

    class User {
        constructor() {
            this.user = mongoose.model('user', {
                email: String,
                name: String,
            })
        }
        validPassword(collection, password) {
            ... ...
        }
    }
    
    const user  = new User();
    module.exports = user;
    

    在我的 PostSchema ,我想要 author 指向上面的模式,但我不知道之后该如何编写该部分 ref: User ,它给了我一个错误 MongooseError: Schema hasn't been registered for model "User".

    var PostSchema = new mongoose.Schema({
        title: { type: String, default: "DefaultTitle" },
        author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
    })
    

    有人能帮忙吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Julien TASSIN    7 年前

    用downcase将ref改为“user”。 该符号表示mongodb dbref

    ref是在您的案例中的集合名称(根据模式声明)“user”在downcase中。

    这将是您的后申报:

    var PostSchema = new mongoose.Schema({
        title: { type: String, default: "DefaultTitle" },
        author: { type: mongoose.Schema.Types.ObjectId, ref: 'user' },
    })