【发布时间】:2020-11-24 09:25:45
【问题描述】:
我希望在创建新文档时 versionKey (__v) 字段会自动递增。
(或者我应该在架构中使用新字段“版本”而不是 __v?)
我的应用程序中的架构示例:
Template.js
var mongoose = require('mongoose');
const Test = require('./Test');
var TemplateSchema = new mongoose.Schema({
platform: String,
templateRevision: String,
tests: [Test.schema]
});
TemplateSchema.pre('save', function(next) {
this.increment();
return next();
});
module.exports = mongoose.model('Template', TemplateSchema);
路由/templatesApi.js
// create new template document
router.post('/', function(req, res, next) {
Test.create(req.body, function (err, tests) {
if (err) {
console.log(err);
return next(err);
}
res.json(tests);
});
});
在哪里以及如何在此处插入 versionKey 属性的自动增量操作?
编辑:我尝试使用 .pre('save') 中间件,但它仍然无法正常工作。
我用对了吗?
【问题讨论】:
-
@turivishal 我看到了那个答案,但我是 Mongo 的初学者,我不知道应该如何使用我正在使用的 '.create' 函数来实现它。我应该在哪里插入 schema.pre("save")?
-
但是
create()会创建新文档对吗?那为什么要在创建中增加版本?默认情况下将设置为零。