如何关联 MongoDB 中的两个集合
How to relate two collections in MongoDB
我创建了两个集合 vendor 和 employee 并且 vendor 集合引用了 employee“emplyoee_id:[字符串]"
我应该反之亦然吗?那是个好主意吗?在两个集合中添加引用?
如果我想让所有员工都加上他们的公司名称怎么办?我很困惑。
employee
const employeeSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
address: String,
email: String,
designation: String,
contact_number: Number,
contract_start: Date,
contract_end: Date
});
供应商
const vendorSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
address: String,
email: [String],
contact_number: [Number],
contract_start: Date,
contract_end: Date,
emplyoee_id:[String]
});
在猫鼬模型中,您可以通过引用另一个模型来定义属性。检查猫鼬 popolate
示例:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const personSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
age: Number,
stories: [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
const storySchema = Schema({
author: { type: Schema.Types.ObjectId, ref: 'Person' },
title: String,
fans: [{ type: Schema.Types.ObjectId, ref: 'Person' }]
});
const Story = mongoose.model('Story', storySchema);
const Person = mongoose.model('Person', personSchema);
用于环回框架
我已经用Loopback框架完成了。例如 User 集合和 Project 集合已经采取 对于每个用户,可以有多个项目,每个项目有一个且只有一个用户。
在项目模型中
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": "id"
}}
在用户模型中
"relations": {
"projects": {
"type": "hasMany",
"model": "project",
"foreignKey": "project_user_id"
}}
我创建了两个集合 vendor 和 employee 并且 vendor 集合引用了 employee“emplyoee_id:[字符串]" 我应该反之亦然吗?那是个好主意吗?在两个集合中添加引用?
如果我想让所有员工都加上他们的公司名称怎么办?我很困惑。
employee
const employeeSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
address: String,
email: String,
designation: String,
contact_number: Number,
contract_start: Date,
contract_end: Date
});
供应商
const vendorSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
address: String,
email: [String],
contact_number: [Number],
contract_start: Date,
contract_end: Date,
emplyoee_id:[String]
});
在猫鼬模型中,您可以通过引用另一个模型来定义属性。检查猫鼬 popolate
示例:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const personSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
age: Number,
stories: [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
const storySchema = Schema({
author: { type: Schema.Types.ObjectId, ref: 'Person' },
title: String,
fans: [{ type: Schema.Types.ObjectId, ref: 'Person' }]
});
const Story = mongoose.model('Story', storySchema);
const Person = mongoose.model('Person', personSchema);
用于环回框架
我已经用Loopback框架完成了。例如 User 集合和 Project 集合已经采取 对于每个用户,可以有多个项目,每个项目有一个且只有一个用户。
在项目模型中
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": "id"
}}
在用户模型中
"relations": {
"projects": {
"type": "hasMany",
"model": "project",
"foreignKey": "project_user_id"
}}