最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用猫鼬从数组中删除对象的不同方法

网站源码admin31浏览0评论

使用猫鼬从数组中删除对象的不同方法

使用猫鼬从数组中删除对象的不同方法

标题。我注意到有两种(也许更多)方法可以从文档中的数组中删除特定对象。示例架构:

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();

推荐哪个比较好?

回答如下:
发布评论

评论列表(0)

  1. 暂无评论