如何高效地search子文档
我有以下模型:
var couponschema = new mongoose.Schema({ name: String, couponcode: String }); var userschema = new mongoose.Schema({ name: String, coupons: [couponschema] });
我需要find并删除所有优惠券与一个特定的coupon code
。
我找不到任何mongoose查询来批量删除多个文档中的多个子文档 。 因此,我留下迭代每个user
文档,然后遍历coupon
subdocs,看看是否有一个匹配的优惠券,然后删除它们 – 但这似乎不是一个优雅的解决scheme。
所以请build议一个干净的方式来做到这一点。 谢谢。
希望它会给你一个想法(使用$拉 ):
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 在这里 。