我想从users
数组中获取指定字段的值。
像{_id: {$in: this.users}}
这样的东西。区别在于users
是一个对象数组,我想得到这个数组中每个对象的_id
字段。
这是代码示例:
var UserSchema = new Schema({
username: {type: String, required: true, unique: true},
password: {type: String, required: true,},
email: {type: String, required: true, unique: true},
role: {type: String, enum: ['user'], required: true},
name: String,
phoneNumber: Number,
companies: [{
_company: {type: Schema.ObjectId, ref: 'Company'},
points: Number
}],
points: Number,
created_at: Date,
updated_at: Date
})
我想为mongoose UserSchema编写这个中间件:
UserSchema.pre('remove', function(next) {
this.model('Company').update(
{_id: {$in: ??????????????????}},
{$pull: {users: this._id}},
next()
)
})
但我不知道如何使用_company
从公司中检索$in
字段。
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
好的,据我所知,你有一个名为users
的数组,它有你的用户对象。并且您希望从该数组中仅获取_id
字段值。所以你可以这样做:
var ids = users.map(function(user){ return user._id });
现在您拥有了用户的_id
值,您可以继续查询。
答案 1 :(得分:1)
请试试这个
-chardev pty,id=mypty