组中删除对象的不同方法"/>
使用猫鼬从数组中删除对象的不同方法
标题。我注意到有两种(也许更多)方法可以从文档中的数组中删除特定对象。示例架构:
var diveSchema = new Schema({
//irrelevant fields
divers: [{
user: { type: Schema.Types.ObjectId, ref: 'User', required: true },
meetingLocation: { type: String, enum: ['carpool', 'onSite'], required: true },
dives: Number,
exercise: { type: Schema.Types.ObjectId, ref: 'Exercise' },
}]
});
例如,这里他们使用了 $pull 语法
Dive.update({ _id: diveId }, { "$pull": { "divers": { "user": userIdToRemove } }}, { safe: true, multi:true }, function(err, obj) {
//do something smart
});
删除匹配对象。但有时,这被用来
let dive = await Dive.findById(diveId)
dive.drivers = dive.drivers.filter(driver => driver.user.toString() !=== userIdToRemove);
await dive.save();
推荐哪个比较好?
回答如下:更多推荐
使用猫鼬从数组中删除对象的不同方法
发布评论