通过猫鼬在 mongodb 中保存家谱的最佳做法是什么?
What will be the best practice to save family tree in mongodb via mongoose?
我正在使用 nodejs 和 mongoose,我想将家谱保存到 mongoose。我的问题是关于架构的。更好的是:拥有一个 person 模式,其中有一个存储家庭成员 ID 的数组字段,或者有其他方法可以做到这一点。因为如果我想找到一个人及其所有家庭成员,机器必须检查所有的人并检查他们是否是该人的家庭成员。有没有更有效的方法?
你能做什么:
解决方案一 是拥有一个有 id 的家庭模型,在用户模型中我会有一个带有家庭 id 的字段(如果你不认为家庭模型需要时,您可以只拥有一个带有姓氏的字段,但每个家庭都必须是唯一的)。
家庭模型示例:
var FamilySchema = new Schema({
name: String
});
var family = db.model('family', FamilySchema);
var PersonSchema = new Schema({
name : String,
family : { type : Mongoose.Schema.ObjectId, ref : 'family' }
});
以姓氏作为字符串的简单示例:
var PersonSchema = new Schema({
name : String,
family : String
});
此外,如果您在用户模型中的家庭字段上放置索引,那么检索某人的所有家庭成员会非常快。这里有更多关于 mongodb 数据库中索引的信息:http://docs.mongodb.org/manual/indexes/
解决方案二你可以使用一个集合,包含所有家庭成员的家庭模型。
var PersonSchema = new Schema({
name : String
});
var person = db.model('person', PersonSchema);
var FamilySchema = new Schema({
name : String,
members : [{ type : Mongoose.Schema.ObjectId, ref : 'person' }]
});
我正在使用 nodejs 和 mongoose,我想将家谱保存到 mongoose。我的问题是关于架构的。更好的是:拥有一个 person 模式,其中有一个存储家庭成员 ID 的数组字段,或者有其他方法可以做到这一点。因为如果我想找到一个人及其所有家庭成员,机器必须检查所有的人并检查他们是否是该人的家庭成员。有没有更有效的方法?
你能做什么:
解决方案一 是拥有一个有 id 的家庭模型,在用户模型中我会有一个带有家庭 id 的字段(如果你不认为家庭模型需要时,您可以只拥有一个带有姓氏的字段,但每个家庭都必须是唯一的)。
家庭模型示例:
var FamilySchema = new Schema({
name: String
});
var family = db.model('family', FamilySchema);
var PersonSchema = new Schema({
name : String,
family : { type : Mongoose.Schema.ObjectId, ref : 'family' }
});
以姓氏作为字符串的简单示例:
var PersonSchema = new Schema({
name : String,
family : String
});
此外,如果您在用户模型中的家庭字段上放置索引,那么检索某人的所有家庭成员会非常快。这里有更多关于 mongodb 数据库中索引的信息:http://docs.mongodb.org/manual/indexes/
解决方案二你可以使用一个集合,包含所有家庭成员的家庭模型。
var PersonSchema = new Schema({
name : String
});
var person = db.model('person', PersonSchema);
var FamilySchema = new Schema({
name : String,
members : [{ type : Mongoose.Schema.ObjectId, ref : 'person' }]
});