gpt4 book ai didi

javascript - 通过 Mongoose 在 mongodb 中保存家谱的最佳实践是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:46 25 4
gpt4 key购买 nike

我正在使用nodejs和mongoose,我想将家谱保存到mongoose。我的问题是关于架构的。更好的做法是:拥有一个人员模式,其中有一个存储家庭成员 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' }]
});


关于javascript - 通过 Mongoose 在 mongodb 中保存家谱的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27847720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com