Мангуста разница между .create и .save - PullRequest
0 голосов
/ 18 октября 2018

Я сделал bootcamp на udemy давно в Express и Mongoose, где, предположим, мы хотим добавить новое поле в данные, мы сделали что-то вроде этого

var playground = require("../models/playground.js");

route.post("/", middleware.isLoggedIn,function (req, res) {

  var name =  req.body.name;
  var image =  req.body.image;
  var description = req.body.description;
  var price = req.body.price;

  playground.create({
    name: name,
    image:image,
    description: description,
    price: price
  }, function(error, newlyCreated){
    if(error) {
      console.log(error)
    }
    else {
      newlyCreated.author.id = req.user._id;
      newlyCreated.author.username = req.user.username;
      newlyCreated.save();
     res.redirect("/playground");
    }
  })
});

Теперь, это было больше года, и яя не могу понять, что я делаю здесь (должен был добавить некоторые комментарии), но я вижу, что мы используем что-то вроде этого playground.create({

, а затем есть то, что я совершенно не могу понять

          newlyCreated.author.id = req.user._id;
          newlyCreated.author.username = req.user.username;
          newlyCreated.save();

Это не основной вопрос, но что будет делать newlyCreated.save();?Я имею в виду, что это, вероятно, сохранит данные, которые мы получаем из внешнего интерфейса, но как это будет работать?

Переходя к основному вопросу, я снова следовал учебному пособию, в котором инструктор сделал что-то столь же простое, как этосохранить данные

 let author = new Author({  
     name: args.name, 
     age: args.age
       })
 author.save()

Так в чем же разница между .create и .save?

1 Ответ

0 голосов
/ 18 октября 2018

Model.create() - это ярлык для сохранения одного или нескольких документов в базе данных.

MyModel.create(docs) делает new MyModel(doc).save() для каждого документа в документах.

Эта функция запускает следующее промежуточное ПО.

  • save ()

Ссылка: https://mongoosejs.com/docs/api.html#model_Model.create

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...