【问题标题】:how to reference a nested model in another model, mongoose 5.0如何在另一个模型中引用嵌套模型,猫鼬 5.0
【发布时间】:2018-10-13 00:51:12
【问题描述】:

如何在另一个模型中引用嵌套模型。例如,拥有这个 shema,我想在 User 架构中引用 subcategories:

var UserSchema = Schema({
    publications: [{
    name:String,
    categories: [{
     type: Schema.Types.ObjectId,
     refPath: 'Category.subcategories._id'
    }]
   }]
});

类别也包含subcategories,定义如下:

var CategorySchema = Schema({
    name: String,
    subcategories: [{
        name: String
    }]
});

我正在尝试引用 subcategories 的 CategorySchema。

【问题讨论】:

    标签: node.js mongoose mongoose-schema mongoose-populate


    【解决方案1】:

    在User 架构中引用Category 将完成这项工作,因为subcategories 包含在Category 中。你需要这样做:

    首先,为您的 Category 模型定义一个包含此代码的 shema 文件:

    const mongoose = require('mongoose');
    
    const CategorySchema = new mongoose.Schema({
        name: String,
        subcategories: [{
            name: String
        }]
    });
    
    const Category = mongoose.model('Category', 'CategorySchema', 'Category');
    module.exports = { Category };
    

    其次,为您的 User 模型定义一个包含此代码的架构文件:

    const mongoose = require('mongoose');
    const Category = mongoose.model('Category');
    
    const UserSchema = new mongoose.Schema({
        publications: [{
          name:String,
          Category: Category.schema
        }]
    });
    
    const User= mongoose.model('User', 'UserSchema', 'User');
    module.exports = { User };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-24
      • 2018-06-23
      • 1970-01-01
      • 2021-08-17
      • 2013-07-21
      • 2021-12-25
      • 2023-03-18
      • 2020-05-23
      相关资源
      最近更新 更多