2017-04-15 116 views
1

使用嵌入文档中猫鼬

var mongoose = require('mongoose'); 
 

 
var Schema = mongoose.Schema; 
 
var ObjectId = Schema.ObjectId; 
 

 
var Comment = mongoose.model('Comment', new Schema({ 
 
    title  : String, 
 
    body  : String, 
 
    date  : Date 
 
})) 
 

 
var Post = mongoose.model('Post', new Schema({ 
 
    comments : [Comment] 
 
})) 
 

 
module.exports.Comment = Comment 
 
module.exports.Post = Post

遵循一个简单的应用程序的教程,并试图创建别的东西掉它,了解猫鼬模式我在尝试使用嵌入文档的错误顺便以前的应用程序定义的模型

我得到这个错误

throw new TypeError('Undefined type `' + name + '` at array `' + path + 
    ^

类型错误:未定义类型model at array comments

回答

1

要嵌入文档,您需要将其架构传递到引用文档中。为此,您可以将模式作为中间步骤单独存储在变量中,然后使用它来定义模型。

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var ObjectId = Schema.ObjectId; 

var CommentSchema = new Schema({ 
    title  : String, 
    body  : String, 
    date  : Date 
}); 

var PostSchema = new Schema({ 
    comments : [CommentSchema] 
}); 


module.exports.Comment = mongoose.model('Comment', CommentSchema); 
module.exports.Post = mongoose.model('Post', PostSchema); 
+0

我得到这个 抛出新类型错误( '未定义类型'' +名字+ ''在数组'' +路径+ ^ 类型错误:在阵列未定义类型''model' comments' – totalnoob

+0

请更新您的答案并共享完整的代码。 –

+0

但不是只是参考?我正在尝试做嵌入式文档 – totalnoob