尚未为模型注册架构.猫鼬>猫鼬 [英] Schema hasn't been registered for model. Mongodb>Mongoose
本文介绍了尚未为模型注册架构.猫鼬>猫鼬的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的代码如下所示:
var mongoose=require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Schema=mongoose.Schema
, ObjectId=Schema.ObjectId;
var BlogPost= new Schema({
author:ObjectId,
title:String,
body:String,
date:Date
});
var myModel =mongoose.model('BlogPost','BlogPost');
console.log(myModel);
需要劝告.我总是遇到这个例外.
Need advise. I am always getting this exception.
500 MissingSchemaError: Schema hasn't been registered for model "BlogPost".<br/>Use mongoose.model(name, schema)
推荐答案
您以错误的方式调用了mongoose.model
.您应该传递一个架构对象对象,但是您传递的是'BlogPost'
字符串.尝试以下代码:
You're calling mongoose.model
in a wrong way. You should pass a schema object object, but you're passing 'BlogPost'
string instead. Try the following code:
var BlogPost= new Schema({
author: ObjectId,
title: String,
body: String,
date: Date
});
var myModel = mongoose.model('BlogPost', BlogPost); // BlogPost is an object here
在那之后,猫鼬会在mongodb://localhost/test
数据库中创建blogposts
集合(小写和复数).如果要更改与模型相对应的集合名称,请将其作为thirs参数传递:
After that mongoose will create blogposts
colection (lowercased and pluralized) in mongodb://localhost/test
database. If you want to change collection name corresponding to your model, pass it as a thirs parameter:
var myModel = mongoose.model('BlogPost', BlogPost, 'BlogPost');
这篇关于尚未为模型注册架构.猫鼬>猫鼬的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文