使用 NodeJS 更新 Mongo DB 集合

时间:2021-03-10 18:54:21

标签: javascript node.js arrays mongodb mongoose

实际上我是 Nodejs 和 MongoDB 开发的新手,请指导我走向正确的道路。 在这里,我使用 NodeJS 和 Mongoose 来连接 MongoDB。我正在尝试通过引用现有数据库集合中的数据来创建新集合。

现有数据库集合: 这里我的“conversationInterval”在这个集合的所有文档中都是独一无二的。 “conversationMetricName” 是一个数组,其中 'metric' 和 'count' 值应该进行比较并且需要创建新集合。 有时会丢失一些“度量”字段,我需要为其分配值“0”。

    {
            "_id" : ObjectId("603faf38150786680421b52b"),
            "conversationMetricName" : [
                    {
                            "metric" : "nConnected",
                            "stats" : {
                                    "count" : 3
                            }
                    },
                    {
                            "metric" : "tAbandon",
                            "stats" : {
                                    "max" : 319012,
                                    "min" : 7372,
                                    "count" : 1,
                                    "sum" : 326384
                            }
                    },
                    {
                            "metric" : "tAcd",
                            "stats" : {
                                    "max" : 319012,
                                    "min" : 7372,
                                    "count" : 1,
                                    "sum" : 326384
                            }
                    }
            ],
            "conversationInterval" : "2021-02-17T18:30:00.000Z/2021-02-18T18:30:00.000Z",
            "__v" : 0
    }
{
        "_id" : ObjectId("603faf38150786680421b52b"),
        "conversationMetricName" : [
                {
                        "metric" : "nConnected",
                        "stats" : {
                                "count" : 19
                        }
                },
                {
                        "metric" : "tAbandon",
                        "stats" : {
                                "max" : 319012,
                                "min" : 7372,
                                "count" : 2,
                                "sum" : 326384
                        }
                }
                
        ],
        "conversationInterval" : "2021-02-18T18:30:00.000Z/2021-02-19T18:30:00.000Z",
        "__v" : 0
}

预期的新数据库集合:

{
chart:{
   date: [2021-01-17T18:30:00.000Z/2021-01-18T18:30:00.000Z, 2021-01-18T18:30:00.000Z/2021-01-19T18:30:00.000Z],
   nConnected: [3,19],
   tAbandon: [1,2],
   tAcd: [1,0],   
   },
}

我尝试过的 Nodejs 代码: 我把所有的“conversationInterval”都用下面的逻辑分组到一个数组中。但我不确定如何通过比较所有文档中的计数来获取“nConnected”、“tAbandon”和“tAcd”。

var amy= [];
           const convAggreeArray2  = userInfoResponse.results[0].data.map(sl => ({            
            conversationInterval : amy.push(sl.interval)           
           
          })

          );
           const convAggreeArray = {
            conversationInterval : amy

          }
         

请帮助我,谢谢。

0 个答案:

没有答案
相关问题