我有一个猫鼬用户模式。seq_no是一个自动递增的字段--如果创建了相同的国家和城市用户,则该字段将递增。
const mongoose = require("mongoose");
const AutoIncrement = require("mongoose-sequence")(mongoose);
UserSchema = mongoose.Schema({
name: String,
country: String,
city: String,
seq_no: Number,
});
UserSchema.plugin(AutoIncrement, {
id: "user_seq",
inc_field: "seq_no",
reference_fields: ["country", "city"],
});
const User = mongoose.model("user", UserSchema);
module.exports = User;const express = require("express");
const router = express.Router();
const User = require("../models/User");
router.post("/", async (req, res) => {
try {
console.log("user post");
const { name, country, city } = req.body;
const user = new User({ name, country, city });
await user.save();
return res.status(200).json(user);
} catch (err) {
console.error(err.message);
res.status(500).send("Server error");
}
});
module.exports = router;我想每天重新设置柜台。猫鼬序列文档说明了counterReset(id, reference, callback),但它抛出了异常Cannot read property '_resetCounter' of null。
发布于 2022-08-30 14:07:10
因此,不用使用counterReset回调,您可以向当前的month year and day传递一个额外的引用,使其成为一个引用字段,这样,每当系统检测到新的一天,插件就会自动重置计数器。
代码看起来会像这样
const mongoose = require("mongoose");
const AutoIncrement = require("mongoose-sequence")(mongoose);
UserSchema = mongoose.Schema({
name: String,
country: String,
city: String,
seq_no: Number,
reset_field: String // here you pass the current day YYMMDD e.g 220809
});
UserSchema.plugin(AutoIncrement, {
id: "user_seq",
inc_field: "seq_no",
reference_fields: ["country", "city", "reset_field"], //Include your reset field in the references
});
const User = mongoose.model("user", UserSchema);
module.exports = User;我知道这可能不会解决真正复杂的重置原因,但确实解决了我的问题,希望我能帮上忙。
https://stackoverflow.com/questions/69141242
复制相似问题