首页 > 解决方案 > 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);
      });
    }
  });
};

标签: javascriptmongodb

解决方案


您可以像下面的代码一样执行此操作:

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);
  }
};

我希望它可以帮助你。


推荐阅读