1
這是我的預訂模式推對象數組使用貓鼬
const mongoose = require('mongoose')
const schema = mongoose.Schema;
let booking = {
statusNumber: { type: Number },
service: {
hair: {
avaliable: { type: Number },
accepted: { type: Number },
acceptedBy: [{
artistId: { type: String },
noOfServices: { type: Number }
}]
},
makeUp: {
avaliable: { type: Number },
accepted: { type: Number },
acceptedBy: [{
artistId: { type: String },
noOfServices: { type: Number }
}]
},
}
}
module.exports = mongoose.model('booking', booking)
我嘗試使用下面的代碼
const acceptBooking = {
method: "POST",
path: "/artist/acceptBooking",
handler: (req, res) => {
console.log(req.payload)
services.booking.get({ _id: req.payload.bookingId }, (err, result) => {
if (err || result.lenght == 0) {
res("error")
} else {
let hairAcceptedBy = {
artistId: req.payload.techId,
noOfServices: req.payload.hair
}
let makeUpAcceptedBy = {
artistId: req.payload.techId,
noOfServices: req.payload.makeUp
}
console.log(hairAcceptedBy)
console.log(makeUpAcceptedBy)
let updateObject = {
service: {
hair: {
avaliable: result[0].service.hair.avaliable - req.payload.hair,
accepted: (result[0].service.hair.accepted == undefined ? 0 : result[0].service.hair.accepted) + req.payload.hair,
$push:{acceptedBy: hairAcceptedBy}
},
makeUp: {
avaliable: result[0].service.makeUp.avaliable - req.payload.makeUp,
accepted: (result[0].service.makeUp.accepted == undefined ? 0 : result[0].service.makeUp.accepted) + req.payload.makeUp,
$push:{acceptedBy: makeUpAcceptedBy}
}
}
}
services.booking.update({ _id: req.payload.bookingId }, updateObject, (err, affected, result) => {
console.log("AFFECTED>>>>>", affected)
console.log("RESULT>>>>>", result);
res("booking done")
})
}
})
更新我的預訂和我的更新功能看起來像
exports.update = (data, updateData, callback) => {
console.log('mongo log for update function', data)
modelUser.update(data, updateData, callback);
}
我的更新功能正在工作並更新可用並被接受,但 未推送ING進入acceptedBy陣列
我試過,但沒有工作 –
你可以參考這個鏈接http://stackoverflow.com/questions/15621970/pushing-對象到數組模式在貓鼬我試着從這裏爲我工作。 –
Does'nt工作我認爲主要問題是我在同一個查詢中推送2個數組。 –