node.js – 使用mongoose填充Model对象的数组

这是我使用的架构.如您所见,survey_codes模型路径由一个ObjectIds数组组成.
...
var Schema = mongoose.Schema;
var Email = mongoose.SchemaTypes.Email;
var ObjectId = mongoose.SchemaTypes.ObjectId;

var RestaurantSchema = new Schema({
  id                    : {type: String,required: true,unique: true},name                  : {type: String,required: true},owner_name            : String,reservation_email     : Email,survey_url            : String,survey_codes          : [{type: ObjectId,ref: SurveyCode}],created_at            : {type: Date,default: Date.now}
});

var SurveyCodeSchema = new Schema({
  code                  : {type: String,unique: true,valid                 : {type: Boolean,default: true},create_date           : {type: Date,default: Date.now},used_date             : {type: Date,default: null}
});

这里我正在尝试使用的功能:

Restaurant
    .findOne({ id: self.param('id') })
    .populate('survey_codes')
    .exec(function(err,restaurant) {
      if (err)
        console.log('Error in view survey codes function');
      if (!restaurant || restaurant.survey_codes.length < 1)
        self.res.send('No survey codes are yet generated.');
      else
        self.res.send(restaurant.survey_codes);
    });

当我执行该函数时,它给了我这个错误:

Locomotive 0.3.7 application starting in development on http://0.0.0.0:3000

/home/pblondin/nodejs-dev/rezerve-locomotive/node_modules/mongoose/lib/utils.js:419
        throw err;
              ^
MissingSchemaError: Schema hasn't been registered for model "function model(doc,fields,skipId) {
    if (!(this instanceof model))
      return new model(doc,skipId);
    Model.call(this,doc,skipId);
  }".

我无法理解这一点.这是我第一次在这里发帖,我注意到你们中的几个人回答了类似的问题,但解决方案并不适用于我的情况.

谢谢!

编辑:

这是一些额外的信息:

1)来自餐馆集合的样本:

[
    {
        "__v": 1,"_id": "52617861b9ee6c171b000001","id": "AAA","name": "Name","owner_name": "Owner","reservation_email": "email@new.com","survey_url": "new@new.com","created_at": "2013-10-18T18:05:21.447Z","survey_codes": [
            "52617864b9ee6c171b000002","52617864b9ee6c171b000003","52617864b9ee6c171b000004","52617864b9ee6c171b000005","52617864b9ee6c171b000006","52617864b9ee6c171b000007","52617864b9ee6c171b000008","52617864b9ee6c171b000009","52617864b9ee6c171b00000a","52617864b9ee6c171b00000b"
        ]
    }
]

2)依赖项的版本:

mongoose: 3.6.20
mongodb: 1.3.19
locomotive: 0.3.7
locomotive-mongoose: 0.1.0

解决方法

解决了(!)

在我的模型中一个简单的拼写错误:

survey_codes          : [{type: ObjectId,

ref为模型名称,所以改为’SurveyCode’!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于nodejs...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建”,内容详细,步骤清晰,细节处理妥当,希望这篇“nodejs怎么实现目录不存在自动创建”文章能帮助大...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“nodejs如何实现定时删除文件”文章能帮助大家解决疑惑...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文...
本篇内容主要讲解“怎么安装Node.js的旧版本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎...
这篇“node中的Express框架怎么安装使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家...
这篇文章主要介绍“nodejs如何实现搜索引擎”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nodejs如何实现搜索引擎...
这篇文章主要介绍“nodejs中间层如何设置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nodejs中间层如何设置”文...
这篇文章主要介绍“nodejs多线程怎么实现”,在日常操作中,相信很多人在nodejs多线程怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
这篇文章主要讲解了“nodejs怎么分布式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs怎么分布式”...
本篇内容介绍了“nodejs字符串怎么转换为数组”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情...
这篇文章主要介绍了nodejs如何运行在php服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nodejs如何运行在php服务器文章都...
本篇内容主要讲解“nodejs单线程如何处理事件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nodejs单线程如何...
这篇文章主要介绍“nodejs怎么安装ws模块”,在日常操作中,相信很多人在nodejs怎么安装ws模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
本篇内容介绍了“怎么打包nodejs代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!
本文小编为大家详细介绍“nodejs接收到的汉字乱码怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“nodejs接收到的汉字乱码怎么解决”文章能帮助大家解...
这篇“nodejs怎么同步删除文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇...
今天小编给大家分享一下nodejs怎么设置淘宝镜像的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希