javascript - 使用 NodeJS 更新 Mongo DB 集合
问题描述
实际上我是 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
}
请帮助我,谢谢。
解决方案
推荐阅读
- javascript - 关于快速选择功能
- git - VScode将.Trash添加到Git Control?
- java - 登录后Tomcat 9应用程序导致502错误
- oauth-2.0 - Imgur OAuth 端点没有响应访问和刷新令牌
- python - 如何在 Python 中并行化循环?
- python - 不能在熊猫中乘以 2 列
- windows - 如何使用批处理文件更新文件夹的修改日期?
- node.js - 在关闭之前让 puppeteer-cluster 在页面事件上等待的问题
- pg-promise - PG-Promise - 两个数据库的事务逻辑
- arrays - 如何使用 Excel 溢出范围将多列数组转换为两列数组