OfferRouter.route('/:offerId/series/:seriesId')
要访问以下嵌套的Mongoose文档:
var Series = new Schema({
_id: mongoose.Schema.Types.ObjectId,
...
active: {type: Boolean, default: false},
qty: {type: Number, default: 0}
});
var Offer = new Schema({
_id: mongoose.Schema.Types.ObjectId,
...
series : [
{ type: Series }
]
});
我需要在offerId文档中找到特定的seriedId,然后检查它是否
active
&如果
qty > 0
qty
.
否则,我将不得不返回
active == false
qty == 0
情况。
我想把这些连续的步骤链接起来,但那就不是原子的了,对吧?
也可以只投影出系列文档。
我试过这样的方法,但我不知道如何检查活动和数量,也不知道如何只投影找到的序列文档;我也不知道hot是否能得到具体的错误:
Offers.findOneAndUpdate({
_id: offerId,
series._id: seriesId
}, {
$dec: { "series.$.qty" : 1 }
}, function(err, series) {
if (err) return next(err);
...
res.json(...);
});