我有 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/