node.js - 从 Mongoose 3.x 升级到 Mongoose 4.x 时如何在模式中使用模式?

标签 node.js mongodb mongoose

我有 2 个文件:

关键特征:

mongoose = require('mongoose');

Schema = mongoose.Schema;

DescriptionSchema = require('./description');

KeyFeatureSchema = new Schema({
  descriptions: [DescriptionSchema],
  title: String,
  key: String,
  display: String,
  feature: {
    type: Schema.Types.ObjectId,
    ref: 'Module'
  }
});

module.exports = KeyFeatureSchema;

描述:

mongoose = require('mongoose');

DescriptionSchema = new mongoose.Schema();

DescriptionSchema.add({
  display: String,
  subdescriptions: [String]
});

module.exports = DescriptionSchema;

如何重写它以与 Mongoose 4 .add 语法兼容?

最佳答案

我不确定我是否理解你的问题,但这是我得到的。

根据mongoose .add documentation for 4.5.2添加语法仍然相同。所以我用你的模式制作了一个简单的 testing.js 文件。我在 descriptions 数组中创建了一个包含一个对象的 keyFeature 对象并保存了它。之后,我使用 mongo 控制台连接到 mongod 并查询 keyfeatures 集合。对象已正确插入数据库。

这是我的代码

var mongoose = require('mongoose');
var DescriptionSchema = require('./description.js');
var KeyFeatureSchema = require('./keyFeature.js');

mongoose.connect('mongodb://localhost/mongoose-testing', function(err)    {
    if(err){
        console.log('Could not connect to mongoose', err);
    }else{
        console.log('Successfully connected to mongoose');
        mongoose.model('Description', DescriptionSchema);
        mongoose.model('Keyfeature', KeyFeatureSchema);
        var Keyfeature = mongoose.model('Keyfeature');

        new Keyfeature({
            descriptions: [{
                display: 'This is the display content from descriptions',
                subdescriptions: ['Subdescription 1']
            }],
            title: 'tittle',
            key: 'key',
            display: 'display'
        }).save(function(err){
            if(err){
                console.log('Error when saving', err);
            }else{
                console.log('Saved');
            }
        });
    }
});

使用 mongoose@4.5.2 测试

关于node.js - 从 Mongoose 3.x 升级到 Mongoose 4.x 时如何在模式中使用模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38015668/

相关文章:

javascript - 如何使用带有严格 : false schema? 的 mongoose 将字段添加到 mongoDB 文档中

javascript - 为什么我在 console 中打印 mongoose 的模型对象时看到额外的字段。我正在将 Node JS 与 Mongoose 一起使用。我怎样才能隐藏这些属性

node.js - Mongoose 不更新嵌入式文档

node.js - 如何使用 Express 安装 SASS?

node.js - MongoDB 中的日期对象与 Mongoose 和 Nodejs 聚合

javascript - 由于性能原因,我应该在 Node.js API 上使用 ES6 吗?

mongodb - 带有 Mongodb 的 Pylons

mongodb - 如何使用docker-compose在pycharm中创建我的scrapy开发环境

node.js - Node.js 加密是否在 GCM 模式下使用固定标签大小?

node.js - 如何在 Travis 上使用 sudo 运行 mocha