【发布时间】:2016-07-06 14:47:32
【问题描述】:
在@enRaiser 的回答后编辑。
我有一个沙盒 mongoDB 数据库,其中包含一个名为“hotels”的集合,其文档架构如下所示:
var roomSchema = new mongoose.Schema({
type: String,
number: Number,
description: String,
photos: [ String ],
price: Number
});
var hotelSchema = new mongoose.Schema({
name: String,
stars: Number,
description: String,
photos: [ String ],
currency: String,
location: {
address: String,
coordinates: [ Number ] /* enforce later validation to have max of two numbers in the array */
},
rooms: [roomSchema],
reviews: [{
name: String,
id: String,
review: String,
rating: Number
}],
services: [ String ]
});
现在,我想为 Hotel 提供两个版本的架构,一个用于“深度”数据模型,另一个用于最小模型。
var hotelMinSchema = new mongoose.Schema({
name: String,
stars: Number,
location: {
address: String,
coordinates: [ Number ]
},
currency: String
})
module.exports = {
full: mongoose.model('hotel', hotelSchema),
min: mongoose.model('hotel', hotelMinSchema)
}
显然我不应该有两个模型来收藏。不太确定。我收到此错误。
OverwriteModelError: 编译后无法覆盖
hotel模型。
我认为应该有一个解决方法。任何帮助或建议将不胜感激。
【问题讨论】:
-
这仍然没有意义。为什么要为同一件事制定两个不同的方案?为什么不直接使用optional attributes?
-
Hotel.find({ }).select('name stars location currency').. gotcha.. 刚找到这个。请不要投反对票..
标签: javascript node.js mongodb mongoose