gpt4 book ai didi

node.js - 单独文件上的 Mongoose 子文档,如何嵌入它们

转载 作者:IT老高 更新时间:2023-10-28 13:04:50 26 4
gpt4 key购买 nike

我正在定义我的应用程序模型,并且我为我定义的每个模型都有单独的文件,我的问题是,我需要创建一个使用子文档的模型,但那是在另一个文件上,我怎么能在我的模型上使用该架构?我的意思是我见过的所有示例都在同一个文件中声明了子模型和父模型,例如:

var childSchema = new Schema({ name: 'string' });

var parentSchema = new Schema({
children: [childSchema]
});

我有一个名为 user.js 的文件,它定义了用户模型:

var mongoose  = require('mongoose');
var Schema = mongoose.Schema;

var userSchema = new Schema({

_id : Schema.Types.ObjectId,
username : String,

});


module.exports = mongoose.model( 'User', userSchema );

在另一个名为 sport.js 的文件中,我有另一个运动模型定义:

var mongoose  = require('mongoose');
var Schema = mongoose.Schema;

var sportSchema = new Schema({

_id : Schema.Types.ObjectId,
name : String

});

module.exports = mongoose.model( 'Sport', sportSchema );

所以在我的用户模型上,我需要为用户将遵循的运动定义一个字段,但我不知道如何定义该子文档,因为运动定义在另一个文件中,我尝试了这个:

var mongoose  = require('mongoose');
var Schema = mongoose.Schema;
var SportsModel = require('sport');

var userSchema = new Schema({

_id : Schema.Types.ObjectId,
username : String,
sports : [SportsModel]

});


module.exports = mongoose.model( 'User', userSchema );

但我不确定这是否是正确的方法,因为我要导出的是模型,而不是架构。

提前致谢,我想在单独的文件中定义每个模型以保持顺序。

最佳答案

您可以通过模型的 schema 属性访问模型的架构。所以这应该有效:

var userSchema = new Schema({    
_id : Schema.Types.ObjectId,
username : String,
sports : [SportsModel.schema]
});

关于node.js - 单独文件上的 Mongoose 子文档,如何嵌入它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com