尚未为模型注册架构.猫鼬>猫鼬 [英] Schema hasn't been registered for model. Mongodb>Mongoose

查看:76
本文介绍了尚未为模型注册架构.猫鼬>猫鼬的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码如下所示:

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');

这篇关于尚未为模型注册架构.猫鼬&gt;猫鼬的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆