我想在我的新项目中使用mongodb。这是我第一次使用mongodb。在关系数据库中,我保存的数据如下:
tbl_country > id,name,created_at,etc..
tbl_city > id,country_id,name,created_at,etc...
tbl_user > id,name_surname,city_id,etc...
在这个模式中,我可以通过使用外键找到城市的国家,用户的国家/地区等。
你建议哪种方式使用nodejs w / mongodb以最佳性能创建这样的模式?
答案 0 :(得分:1)
创建架构时仍可以使用外键。请查看此模式作为您提供的示例。
var CountrySchema = new Schema({
name: String,
created_at: Date
});
var CitySchema = new Schema({
countryName: { type: mongoose.Schema.Types.ObjectId, ref: 'Country' },
created_at: Date
});
var UserSchema = new Schema({
name_surname: String,
city: { type: mongoose.Schema.Types.ObjectId, ref: 'City' }
})
mongoose.model('Country', CountrySchema);
mongoose.model('City', CitySchema);
mongoose.model('User', UserSchema);
当你获取数据时,你必须使用'populate'方法。例如:
City.find()
populate('countryName', 'name') // It will bring only name field
.exec(function(err, cities) {
})
顺便说一下。 _id是由mongo为每个数据自动创建的。因此,您无需在模式中添加id字段。希望能帮助到你。祝你好运