多次插入到猫鼬

时间:2017-05-03 11:36:55

标签: javascript angularjs node.js mongodb

我的服务器端使用节点js,客户端使用angular和html。

我已将服务器端的数据插入到mongoose中。当我在同一页面上并希望向mongoose插入新数据时,我必须重新启动服务器以使其正常工作。

如何在代码中编写它以重新启动它?或者如果有不同的方法来清理我之前的请求?

  var savePersonal = new personal({
                email : myemail,
                Tags : mytags,
                Title: request.body.Title,
                Info: request.body.Info,
                Category: request.body.Category,
                file: "none",
                Recommendation:request.body.Recommendation,
                myDate:tempDate
              });
              savePersonal.save(function(error, result) {

                if (error) {
                  console.error(error);
                } else {
                  console.log("save");
                  request = "";
                  response.redirect('http://localhost:8080/getPrivateData.html');
                }
          })

1 个答案:

答案 0 :(得分:1)

如果您不想在db中创建新文档,则必须使用update方法,例如:

var mongoose = require('mongoose');
var personal = mongoose.models.personal;

personal.find({}, function(err, users){
    if(err) throw err;

    var data = {
                email : myemail,
                Tags : mytags,
                Title: request.body.Title,
                Info: request.body.Info,
                Category: request.body.Category,
                file: "none",
                Recommendation:request.body.Recommendation,
                myDate:tempDate
              };

    if(users.length)
       personal.create(data, function(err, results){...});
    else
       personal.update({_id: users[0]._id}, data, function(err, results){...});
})

这是非常粗略的代码,但主要思想是:     1)检查是空的     2)如果它是空的,则使用save / create     3)如果它不是空的,则使用更新,但是对于更新,您必须知道文档的_id。我使用第一个元素的id(users [0] ._ id)。