【发布时间】:2020-05-14 17:41:45
【问题描述】:
我有类别架构,如果类别名称不存在,我想插入新类别。我尝试了一些东西,但我没有任何反应。
category.model
var mongoose = require("mongoose");
var categorySchema = mongoose.Schema({
name: {
type: String,
require: true
},
createdAt: {
type: Date,
default: () => {
return new Date();
}
}
});
module.exports = mongoose.model("category", categorySchema);
分类插入功能
var Category = require("../models/category.model");
exports.create = (req, res) => {
Category.find({ name: req.body.name }, (err, cat) => {
if (cat.length > 0) {
// i want to return exists message here
} else {
// i want to insert here if not exists
var category = new Category();
category.name = req.body.name;
category.save(err => {
if (err) {
return new response(null, err).error500(res);
}
return new response(category, null).created(res);
});
}
});
};
【问题讨论】:
-
应该是
required: true,而不是require -
您还有其他错误信息吗?代码看起来几乎正确(见上面的评论)。还要在名称上添加一个唯一索引(如果您想确保每个名称只有一个类别)。
-
听起来
upsert也可以满足您的创建需求(如果不存在):stackoverflow.com/questions/7267102/… -
@AntoineBolvy Thx,我已经在名称上添加了唯一索引并且我已经采取了回应。
标签: javascript mongodb