.create和.save之间的猫鼬区别

iRo*_*tia 3 javascript mongoose mongodb node.js express

我很早就在Express和Mongoose的udemy上进行了一个训练营,假设我们想在数据中添加新字段,我们做了类似的事情

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");
    }
  })
});
Run Code Online (Sandbox Code Playgroud)

现在,已经一年多了,我无法理解我在这里所做的事情(应该添加一些评论),但是我确实看到我们正在使用类似这样的东西 playground.create({

然后这是我完全无法理解的

          newlyCreated.author.id = req.user._id;
          newlyCreated.author.username = req.user.username;
          newlyCreated.save();
Run Code Online (Sandbox Code Playgroud)

这不是主要问题,但是newlyCreated.save();将会做什么?我的意思是,它可能会保存我们从前端获取的数据,但是它将如何工作?

转到主要问题,我再次关注了一个教程,在该教程中,指导老师做了一些像这样简单的事情来保存数据

 let author = new Author({  
     name: args.name, 
     age: args.age
       })
 author.save()
Run Code Online (Sandbox Code Playgroud)

那么.create和之间的一般区别是.save什么?

Ngu*_*You 5

Model.create() 是将一个或多个文档保存到数据库的快捷方式。

MyModel.create(docs)确实new MyModel(doc).save()在文档的每个文档。

此功能触发以下中间件。

  • 保存()

参考:https : //mongoosejs.com/docs/api.html#model_Model.create