【问题标题】:How do I use schemas within schemas when upgrading to Mongoose 4.x from Mongoose 3.x?从 Mongoose 3.x 升级到 Mongoose 4.x 时,如何在架构中使用架构?
【发布时间】:2016-10-27 04:58:35
【问题描述】:

我有 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 语法兼容?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

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

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

    这是我的代码

    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

    测试

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2016-02-29
      • 2019-10-10
      • 2018-12-27
      相关资源
      最近更新 更多