【发布时间】:2020-11-09 20:44:01
【问题描述】:
尝试使用 mongoose 和 nodejs 在 mongodb 中插入序列号的自动增量编号,但不起作用。我想在哪里更新我的代码以找到解决方案。如果有人知道,请帮助找到解决方案。
subs.model.js:
const mongoose = require('mongoose');
var subscriberSchema = new mongoose.Schema({
_id: {type: String, required: true},
email: {
type: String
}
}, {
versionKey: false,
collection: 'subscribers'
});
module.exports = mongoose.model('Subscribers', subscriberSchema);
data.controller.js:
module.exports.subscribeMail = (req, res, next) => {
var subscribeModel = mongoose.model("Subscribers");
var subscribemailid = req.query.email;
var subscribe = new subscribeModel({
email: subscribemailid
});
var entitySchema = mongoose.Schema({
testvalue: { type: String }
});
subscribe.save(function(error, docs) {
if (error) { console.log(error); } else {
console.log("subscribe mail id inserted");
console.log(docs)
res.json({ data: docs, success: true });
}
});
entitySchema.pre('save', function(next) {
var doc = this;
subscribe.findByIdAndUpdate({ _id: 'entityId' }, { $inc: { seq: 1 } }, function(error, counter) {
if (error)
return next(error);
doc.testvalue = counter.seq;
next();
});
});
};
如果我使用上面的代码将数据插入 mongodb,如下所示:
_id:5f148f9264c33e389827e1fc
email:"test@gmail.com"
_id:6f148f9264c33e389827e1kc
email:"admin@gmail.com"
但我想这样插入
_id:5f148f9264c33e389827e1fc
serialnumber:1
email:"test@gmail.com"
_id:6f148f9264c33e389827e1kc
serialnumber:2
email:"admin@gmail.com"
【问题讨论】:
-
这能回答你的问题吗? Mongoose auto increment
标签: mongodb mongoose mongodb-query mongoose-schema