【发布时间】:2021-07-04 15:20:01
【问题描述】:
我有以下用户模型:
const userSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'Please tell us your name!'],
},
email: {
type: String,
required: [true, 'Please provide your email'],
//unique: true,
lowercase: true,
validate: [validator.isEmail, 'Please provide a valid email'],
},
phoneNumber: { type: String, default: '' },
photo: {
type: String,
default: 'default.jpg',
},
// roles: [{ type: mongoose.Schema.ObjectId, ref: 'Roles' }],
roles: [String],
password: {
type: String,
required: [true, 'Please provide a password'],
minlength: 8,
select: false,
},
passwordConfirm: {
type: String,
required: [true, 'Please confirm your password'],
validate: {
// This only works on CREATE and SAVE!!!
validator: function (el) {
return el === this.password
},
message: 'Passwords are not the same!',
},
},
passwordChangedAt: { type: Date, select: false },
passwordResetToken: { type: String, select: false },
passwordResetExpires: { type: Date, select: false },
active: {
type: Boolean,
default: true,
// select: false,
},
admissionDate: Date,
positions: [
{
branch: {
//branch al qeu pertenece el horario
type: mongoose.Schema.ObjectId,
ref: 'Branch',
},
area: {
//area al que pertenece el horario
type: mongoose.Schema.ObjectId,
ref: 'Area',
},
position: {
//area al que pertenece el horario
type: mongoose.Schema.ObjectId,
ref: 'Position',
},
salary: { type: Number, default: '' },
},
],
})
我有属性positions,它是一个对象数组。每个对象都有该用户所属的branch、area 和position 的引用(这些是单独的模型)。
我正在尝试创建一个可以显示属于某个分支和区域的用户的查询,但到目前为止我还无法创建该查询:
我试过了:
{
"positions": {
"branch": "60691ada4a9943d8eb562874",
"area": "60691aea4a9943d8eb562875"
}
}
尝试使用 $in 运算符、$all 运算符、$elemMatch 运算符,但到目前为止没有任何效果。
您能否帮我构建正确的查询以获取所需的元素。
非常感谢您。
【问题讨论】: