ERDEM NAYİR
ERDEM NAYİR

Reputation: 23

MongoDB if field does not exist insert

i have category schema and i want to insert new category if category name does not exist. I tried something but i could not any response.

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

category insert function

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

Upvotes: 2

Views: 461

Answers (1)

Titus Sutio Fanpula
Titus Sutio Fanpula

Reputation: 3613

You can do it like this code below:

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

I hope it can help you.

Upvotes: 1

Related Questions