【问题标题】:Insert data into mongodb collection将数据插入 mongodb 集合
【发布时间】:2022-01-04 23:09:41
【问题描述】:

我想插入整个当月的数据,即November 这个月的每一天,每一天的每一小时,每一小时的每一分钟,每一分钟的每一秒。我尝试了以下代码,我尝试了一天。

const data = [
    {
      'name': 'Name 10'
    }, {
      'name': 'Name 9'
    }, {
      'name': 'Name 8'
    }, {
      'name': 'Name 7'
    }, {
      'name': 'Name 6'
    }, {
      'name': 'Name 5'
    }, {
      'name': 'Name 4'
    },
    {
      'name': 'Name 3'
    },
    {
      'name': 'Name 2'
    },
    {
      'name': 'Name 1'
    }
];

const HOURS = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
const MINUTES = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59];
    for (let i = 0; i < data.length; i++) {
        for (let h = 0; h < HOURS.length; h++) {
            const hour = new Date().setHours(HOURS[h]);
            for (let m = 0; m < MINUTES.length; m++) {
                const n = data[i].name;
                const value =  Math.floor(Math.random() * (10 - 0 + 1)) + 0;
                const timestamp = new Date(hour).setMinutes(MINUTES[m]);
                new MongoCollection({ 'name': n, 'value': value, 'timestamp': timestamp }).save();
            }
        }       
    }

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    为什么要创建数组并使用HOURS.lengthMINUTES.lengthfor (let h = 0; h &lt; 24; h++)for (let m = 0; m &lt; 60; m++) 也是如此。

    - 0+ 0 的用途是什么?

    逐一插入文档会导致严重的性能问题。

    无论如何,我建议moment.js 库,将与此类似。

    for (let d of data) {
       var startTime = moment().startOf('month');
       var endTime = moment().endOf('month');
       var docs = [];
       while (startTime.isBeforeOrSame(endTime)) {
          docs.push({ 
              name: d.name, 
              value: Math.floor(Math.random() * 11), 
              timestamp: startTime.toDate() 
          });
          startTime.add(1, 'second');
       }
       db.collection.insertMany(docs);
    }
    

    或者甚至可以将数组 docs 放在顶层。

    【讨论】:

    • 我怎样才能用猫鼬试试呢?我试过new MongoCollection().insertMany(docs)MongoCollection.insertMany(docs)MongoCollection().insertMany(docs).save()new MongoCollection().insertMany(docs).save(),它们都没有奏效。
    • 对不起,我从来没有和猫鼬一起工作过。见stackoverflow.com/questions/10266512/…
    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 2022-12-17
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多