如何将数组中的多个项目保存到NodeJS / Mongoose中的数据库

时间:2019-02-28 17:27:52

标签: node.js mongodb mongoose

首先,我通过一种形式向我返回多行文字

然后我使用以下内容将其拆分为多个网址

var str = req.body.url;
var split = str.split('\n');

那我明白了

[urlone,urltwo,urlthree]

我的保存功能可以很好地处理一个文档 我只是似乎无法通过mongoose命令同时将所有三个提交到mongo。

ive尝试了一些forEach循环。没有任何帮助

我真的可以在这里使用一些帮助 我真的是nodejs的新手

1 个答案:

答案 0 :(得分:0)

定义模型:

<script type="text/javascript">

  function Calculate() {
      var table = document.getElementById('table');
      var items = table.getElementsByTagName('input');
      var sum = 0;
      for(var i=0; i<items.length; i++)
          sum += parseInt(items[i].value);
      var output = document.getElementById('sum');
      output.innerHTML = sum;
      return sum;
  }

  function popUp() {
    total = Calculate();
    alert("Je hebt to nu toe " + total + "ECTS behaald." );
  }


</script>

现在,您可以创建或更新任何记录。

let mongoose = require('mongoose');
let Schema   = mongoose.Schema;

let ModelSchema = new Schema(
  {
    property: String,

    urls: []
  },
  {    
    collection: 'models',
    strict: true,
    autoIndex: true
  }
);

module.exports = Model = mongoose.model('Model', ModelSchema);

//解决方案1 ​​

let urlArray = req.body.url.split('\n');

//解决方案2

let myModel = new Model();
myModel.property = 'xxx';
myModel.urls = urlArray;
myModel.save();

//解决方案3,防止重复输入

Model.update({ property: 'xxxx' }, { $set: { urls: urlArray } }, { upsert: true }, function(err, res) {
  // continue to check err/res
})