我愿意用猫鼬在标题内执行动作
例如文档字段(数组)如下
likers: ['Jakob', 'Ritchie','John', 'Tommy']
我想从使用此参数找到的数组中删除“喜欢”
let document = await Model.findOne({id: req.params.id, name: req.params.name})
let unlike = await Model.findOneAndUpdate({id: req.params.id, name: req.params.name},
/* do something like this document.likers.splice() or something */)
我该怎么做?
答案 0 :(得分:2)
只要正确定义了架构,就可以通过update
和$pull
来做到这一点,就像这样:
YouModel.updateOne(
{ _id: mongoose.Types.ObjectId(req.params.id) },
{ $pull: { 'likers': req.params.name } }
)
与纯mongo几乎相同:
db.getCollection('YourColletion').updateOne(
{ _id: ObjectId(req.params.id) },
{ $pull: { 'likers': req.params.name } }
)