请参阅类中的模式

时间:2017-11-18 17:45:46

标签: node.js mongodb express mongoose schema

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

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 个答案:

答案 0 :(得分:0)

使用小写将您的参考转为'用户'。 这种表示法是指mongodb dbref

ref是你的情况下的集合名称(根据模式声明)“user”为小写。

这将是你的邮政宣言:

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