Итак, я использую node v10, mongodb v4.2 и mon goose v5.9.
У меня есть UsersSchema:
const UsersSchema = new Schema({
name: {
type: String,
required: true,
},
email: {
type: String,
required: true,
lowercase: true
},
...
CompaniesSchema:
const CompaniesSchema = new Schema({
name: {
type: String,
required: true,
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Users',
required: true
},
branches: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Branches'
}]
...
})
И BranchesSchema:
const BranchesSchema = new Schema({
name: {
type: String,
required: true,
},
company: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Companies',
required: true
}
users: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Users',
}]
})
Мне нужно запросить все компании, которыми владеет пользователь, ИЛИ компании, в которые он был добавлен в филиал. Я пробовал делать как:
const id = 'MY_USER_ID'
const queryCompanies = await Companies.find({
$or: [{ user: id }, { "branches.users": [id] }],
});
Часть { user: id }
работает. У меня проблемы с запросом компаний, в которых он работает, по филиалам, в которых он работает. Возможно ли это?