有一个项目集合和一个类别集合,我想将它们关联起来,考虑到所有查询都将针对项目集合进行,并且类别总是包含很少的文档。我不想依赖数字或自动生成的 mongodb 哈希 id 用于类别,因为以这种方式在每个项目中设置类别更加灵活且易于阅读:myItem.category ='CATEGORY_CODE'。这允许任何客户端仅使用可以存储在本地并且与本机 mongodb id 相对的可预测的类别代码。
以下是模型:
//Item.js
var ItemSchema = new Schema({
name: { type: String, default: 'default_name', trim: true },
category: { type: Schema.Types.ObjectId, ref: 'Category' },
});
mongoose.model('Item', UserSchema)
//Category.js
// Note: 'uncat' is the category code for 'uncategorized'
var CategorySchema = new Schema({
_id: { type: String, default: 'uncat', lowercase: true, trim: true },
translation: [ { lang_code: String, text: String}]
});
mongoose.model('Category', CategorySchema);
所以问题是:
是否可以(并且建议)禁用 CategorySchema 中的“_id”字段并使用另一个字段(即“代码”)并从 Item.Category 引用 CategorySchema.code?你知道另一种可以匹配这种情况的策略吗?
类别架构将是这样的:
var CategorySchema = new Schema({
code: { type: String, default: 'uncat', lowercase: true, trim: true },
translation: [ { lang_code: String, text: String}]
}
_id: false
);