Я пытаюсь реализовать базу данных типа контроля версий для обновления записей. Я использую мангуста для тяжелой работы. Моя модель выглядит следующим образом:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const VenueSchema = new Schema({
_id: String,
num_revisions: {type: Number, default: 0},
"1": {
avp_prio: Number,
prio_cat: String,
mkt_prio: Number,
comp_pos: String,
pvc_driver: Number,
pvc_desc: String
}
});
const Venue = mongoose.model('venue', VenueSchema);
module.exports = Venue;
num_revisions будет представлять, сколько ревизий имело место. Ключ «1» представляет версию документа. Моя цель - увеличить num_revisions после того, как произошел пут, добавить res.body к исходному документу и сопоставить ключ со значением num_revisions, чтобы я точно знал, какой документ является самым последним.
Вот мой метод PUT. Я могу включить num_revisions нормально, но я не уверен, как добавить req.body и обновить ключ для него.
/* PUT update docuement with new revision. */
router.put('/:id', (req, res, next) => {
console.log(req.body);
Venue.findOneAndUpdate({ _id: req.params.id }, { $inc: { num_revisions: 1 },key: 2}, {new: true}).then(function (venue) {
res.send(venue);
});
});
Любая помощь очень ценится!
Я пытаюсь выполнить следующее:
{
"_id": "testvenue",
"__v": 0,
"num_revisions": 2,
"1": {
"avp_prio": 1,
"prio_cat": "text",
"mkt_prio": 1,
"comp_pos": "test",
"pvc_driver": 1,
"pvc_desc": "test"
},
"2": {
"avp_prio": 3,
"prio_cat": "update",
"mkt_prio": 1,
"comp_pos": "test",
"pvc_driver": 1,
"pvc_desc": "test"
}
}