javascript - MongoDB如果字段不存在插入
问题描述
我有类别架构,如果类别名称不存在,我想插入新类别。我尝试了一些东西,但我无法做出任何回应。
类别.模型
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);
});
}
});
};
解决方案
您可以像下面的代码一样执行此操作:
exports.create = async (req, res) => {
try {
let category = await Category.find({ name: req.body.name });
if(category) {
// return or do some stuff here
}
category = new Category(req.body);
category = await category.save();
return new response(category, null).created(res);
} catch(ex) {
console.log(ex.message);
return new response(null, ex).error500(res);
}
};
我希望它可以帮助你。
推荐阅读
- c++ - getline() 上的分隔符无法正常工作
- algorithm - 如果数字是小数,如何检查某个数字是否可以表示为 x^y?
- javascript - 在加载时为浮动标签添加事件侦听器
- python - Python:从分支推断项目层次结构
- amazon-kinesis - Spring Integration Kinesis 适配器和消费者组
- azure-cognitive-search - Azure 搜索索引索引器问题
- c# - 数据工厂数据集时区处理
- testing - gradle : java 测试运行了两次
- excel - Excel:突出显示相邻列中多次出现的多个值的最大值
- c# - Unity 相机围绕对象旋转