模式的自引用无效

时间:2014-06-30 10:15:26

标签: node.js mongodb mongoose schema

以下是我的架构 -

var mongoose = require('mongoose');

// Create Schema
var userSchema = new mongoose.Schema({
    name: String,
    email: String,
    created_by: { type: Schema.Types.ObjectId, ref: 'User'},
    created_date: { type: Date, default: Date.now }
});

// compile Schema into a model
var User = mongoose.model('User', userSchema);

// Make this instance available when require()d
module.exports = User;

以下是我得到的错误 -

/trialcoder/project/server/models/user.js:26
    created_by: { type: Schema.Types.ObjectId, ref: 'User'},
                        ^
ReferenceError: Schema is not defined
    at Object.<anonymous> (/trialcoder/project/server/models/user.js:26:25)

让我知道我现在做错了什么,因为目前我正在遵循第二种方法参考here

仅供参考 - 我删除了一些字段,因此这里的行号可能不一样。

1 个答案:

答案 0 :(得分:3)

架构不存在,您需要使用:mongoose.Schema.Types.ObjectId来访问对象引用,或者使用该名称创建一个变量并在其中存储moongoseSchema。:

var moongose,
    Schema = `mongoose.Schema`;