我有以下型号:
var couponschema = new mongoose.Schema({
name: String,
couponcode: String
});
var userschema = new mongoose.Schema({
name: String,
coupons: [couponschema]
});
我需要查找并删除特定coupon code
的所有优惠券。
我找不到任何mongoose查询批量删除多个文档的多个子文档。因此,我会遍历每个user
文档,然后循环遍历coupon
子文件以查看是否存在匹配的优惠券,然后将其删除 - 但这似乎并非如此优雅的解决方案。
所以请建议一个干净的方法来做到这一点。感谢。
答案 0 :(得分:1)
希望它会给你一个想法(使用$pull):
db.user.update(
{ },
{
$pull : {
"coupons" : <...expression here...> // match specific coupons
}
},
{ multi: true }
)
<强>更新强>
tUser.update({
'coupons.couponcode': data.regid
}, {
$pull: {
coupons: {
couponcode: data.regid
}
}
}, { multi: true, safe: true }, function (err, val) {
// .. do something here
});
Mongoose update
API here。