繁体   English   中英

使用mongoose在mongodb中的两个模式之间的关系

[英]Relationship between two schemas in mongodb using mongoose

我有两个模式,第一个是countrySchema,它具有国家/地区ID和名称:以下是模式代码:

var countrySchema = new Schema({
        country_id:String,
        country_name:String
});
var countryArray = mongoose.model('countryArray',countrySchema);

另一个模式是stateSchema,它具有状态ID和状态名称:以下是模式代码:

var Schema = mongoose.Schema;

var stateSchema = new Schema({
        state_id:String,
        state_name:String,
});
var states = mongoose.model('states',stateSchema);

现在,在stateSchema中,我想要有state_id,country_id,这实际上是来自countrySchema和state_name。 我该怎么做呢 ?

您可以如下添加country_id,并在状态模块中使用国家/地区的ObjectId引用国家/地区模块。 然后,您必须使用由猫鼬为特定国家/地区创建的objectId作为stateSchema的country_id。

countrySchema

var countrySchema = new Schema({
        _id:Schema.Types.ObjectId,
        country_id:String,
        country_name:String
});
var countryArray = mongoose.model('countryArray',countrySchema);

stateSchema

var stateSchema = new Schema({
        _id:Schema.Types.ObjectId,
        state_id:String,
        country_id: {Schema.Types.ObjectId, ref:'countryArray'},
        state_name:String,
    });

试试这个

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var countrySchema = new Schema({
        country_id:String,
        country_name:String
});
var countryArray = mongoose.model('countryArray',countrySchema);


var stateSchema = new Schema({
        state_id:String,
        state_name:String,
        country: { type: Schema.Types.ObjectId, ref: 'countryArray' },

});
var states = mongoose.model('states',stateSchema);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM