Mongo:对同一集合中另一个文档的_id字段的引用



我刚刚开始在MongoDB中执行第一步,所以如果我的问题听起来有点愚蠢,请原谅我。我真的尽力在谷歌上搜索答案,但到目前为止都没找到。

我想问一下,处理以下情况的最佳做法是什么。例如,我有一个集合";公司";(指法律实体清单(。其中的每个文档将具有相同的公共字段;name _ official"name _ short"name_group"name_parent";,字段";name_parent"应该引用同一集合中的母公司(不同的文档(。由于并非所有集合中的公司都应该有任何母公司,因此从逻辑上讲,该字段应该是";required:false";。我知道我可以很容易地将这个字段的值类型保持为字符串。但是,是否可以将ObjectID类型分配给该字段,该字段将引用包含母公司信息的文档的_id字段?

提前感谢您的帮助!

/*更新*/在尝试了不同的填充MongoDB的方法(从csv导入,通过我的应用程序中的"创建新公司"表单,并在专门编写的"populatedb.js"模块的帮助下(后,我最终得出结论,这样的模式(在同一集合中具有跨文档引用(不允许离开";name_parent"字段为空。即使你明确地定义它";required:false";。所以,下面的说明不起作用。comp_ParentName:{type:Schema.Types.ObjectId,ref:"company",required:false}

关于如何处理这种关系的最佳实践,还有其他建议吗?再一次,我想做的是将母公司(一个法律实体和一份文件(引用到同一集合中的子公司(单独的法律实体和单独的文件(;公司";。

真的需要帮助!提前感谢!

所以您有类似this的东西?:-

/** Dependencies */
// Mongoose
const mongoose = require('mongoose')
/** Data Schema */
const CompaniesSchema = new mongoose.Schema({
// Name Official
name_official: { type: String, trim: true, required: true },
// Name Short
name_short: { type: String, trim: true, required: true },
// Name Group
name_group: { type: String, trim: true, required: true },
// Name Parent
name_parent: { type: mongoose.Schema.Types.ObjectId, ref: "Companies" }
})
/** Export */
module.exports = mongoose.model('Companies', CompaniesSchema)

那么它应该已经工作

最新更新