Rag*_*nar 6 mongoose mongodb node.js
我有这个架构:
var ParameterSchema = new Schema({
id: {
type: String,
trim: true,
default: ''
},
value: {
type: String,
trim: true,
default: ''
}
});
Run Code Online (Sandbox Code Playgroud)
我想将它用作子文档,在两个或多个集合中,这些集合在不同的文件中定义,如下所示:
档案1
var FirstCollectionSchema = new Schema({
name: {
type: String,
trim: true,
default: ''
},
parameters: [ParameterSchema]
});
Run Code Online (Sandbox Code Playgroud)
档案2
var SecondCollectionSchema = new Schema({
description: {
type: String,
trim: true,
default: ''
},
parameters: [ParameterSchema]
});
Run Code Online (Sandbox Code Playgroud)
所以,问题是:如何在另一个文件中定义一次ParameterSchema,并从文件1和文件2中使用它.
biz*_*nzz 12
将参数子doc模式导出为模块.
// Parameter Model file 'Parameter.js'
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ParameterSchema = new Schema({
id: {
type: String,
trim: true,
default: ''
},
value: {
type: String,
trim: true,
default: ''
}
});
module.exports = ParameterSchema;
// Not as a mongoose model i.e.
// module.exports = mongoose.model('Parameter', ParameterSchema);
Run Code Online (Sandbox Code Playgroud)
现在需要父文档中导出的模块架构.
// Require the model exported in the Parameter.js file
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Parameter = require('./Parameter');
var FirstCollectionSchema = new Schema({
name: {
type: String,
trim: true,
default: '
},
parameters: [Parameter]
});
module.exports = mongoose.model('FirstCollection', FirstCollectionSchema);
Run Code Online (Sandbox Code Playgroud)
现在保存集合和子文档.
var FirstCollection = require('./FirstCollection')
var feat = new FirstCollection({
name: 'foo',
parameters: [{
id: 'bar',
value: 'foobar'
}]
});
feat.save(function(err) {
console.log('Feature Saved');
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3254 次 |
最近记录: |