我是Mongo数据库的新手,
我在我的项目中使用node.js mongoose库。我的要求是
我有两个系列。 1.服务2.包
从上面两个集合中,第一个Collection Services包含100个文档,当将文档插入第二个集合Packages时,第二个值应该引用第一个集合。
我想从包集合中引用服务集合?
module.exports = mongoose.model('Package', new Schema({
packageName: { type: String, unique: true },
services: {id:{type: Schema.Types.ObjectId,
ref: 'service'}}, // Am I doing wrong here?
duration: { type: Date, default: Date.now}
}));
module.exports = mongoose.model('Service', new Schema({
service: { type: String, unique: true }
}));
任何人都可以请我提供正确的方法来定义模型并访问它们吗?
答案 0 :(得分:0)
试试这个,这是以mongoose
设计架构的正确方法module.exports = mongoose.model('Service', new Schema({
service: { type: String, unique: true }
}));
您的包裹模型
module.exports = mongoose.model('Package', new Schema({
packageName: { type: String, unique: true },
services: [{type: Schema.Types.ObjectId,ref: 'service'}], // Array of service
duration: { type: Date, default: Date.now}
}));
另一种方式
module.exports = mongoose.model('Package', new Schema({
packageName: { type: String, unique: true },
services: [{serviceId:{type: Schema.Types.ObjectId,ref: 'service'}}], // Array of service
duration: { type: Date, default: Date.now}
}));
答案 1 :(得分:0)
第一个设计服务架构
var serviceSchema = new mongoose.Schema({
service: { type: String, unique: true }
});
然后设计包maodel
module.exports = mongoose.model('Package', new Schema({
packageName: { type: String, unique: true },
services: [serviceSchema], // Array of service object
duration: { type: Date, default: Date.now}
}));