Javascript 请求MongoDB、数据聚合和进一步向MongoDB写入数据
我试图从MongoDB集合中读取数据,使用Node.js对其进行聚合,然后根据从聚合字段获得的数据写入新集合 该代码使用正确的输入工作并创建新的168个集合(每个工作日和小时) 但是,终端返回以下错误语句Javascript 请求MongoDB、数据聚合和进一步向MongoDB写入数据,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我试图从MongoDB集合中读取数据,使用Node.js对其进行聚合,然后根据从聚合字段获得的数据写入新集合 该代码使用正确的输入工作并创建新的168个集合(每个工作日和小时) 但是,终端返回以下错误语句 (节点:15124)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺 有人知道代码出了什么问题吗 MongoClient.connect(url, async function (e
- (节点:15124)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺
MongoClient.connect(url, async function (err, db) {
if (err) throw err;
var dbo = db.db("pspDB");
dbo.collection("Collection1").aggregate(
[{ $match: { status: "SETTLED" } },
{
$project:
{
TimeStart: "$creationDate",
startMonth: { $month: "$creationDate" },
startDay: { $dayOfMonth: "$creationDate" },
startHour: { $hour: "$creationDate" },
startDayOfWeek: { $dayOfWeek: "$creationDate" },
startWeek: { $week: "$creationDate" },
price: "$price"
}
},
{
$lookup: {
from: "Collection2",
localField: "TimeStart",
foreignField: "TimeStart",
as: "weekAndHour"
}
},
{
$unwind: "$weekAndHour"
},
{
$unwind: "$weekAndHour.Utilization"
},
{
$project:
{
TimeStart: 1,
startMonth: 1,
startDay: 1,
startHour: 1,
startDayOfWeek: 1,
startWeek: 1,
price: 1,
utilisation: "$weekAndHour.Utilization"
}
}
]).toArray(async function (err, result) {
if (err) throw err;
// Creating collections for all weekdays and hours (168 in total) for aggregation purposes
for (var mk = 0; mk <= 7; mk++) {
for (var ik = 0; ik < 24; ik++) {
var picked = lodash.filter(result, { 'startHour': ik, 'startDayOfWeek': mk })
console.log(picked)
var name = "WEEKDAY" + mk + "H" + ik
console.log(name)
dbo.collection(name).insertMany(picked)
}
}
})
})
MongoClient.connect(url,异步函数(err,db){
如果(错误)抛出错误;
var dbo=db.db(“pspDB”);
dbo.集合(“集合1”).集合(
[{$match:{状态:“已结算”},
{
$项目:
{
TimeStart:“$creationDate”,
开始月份:{$month:$creationDate},
开始日期:{$dayOfMonth:$creationDate},
开始:{$hour:$creationDate},
startDayOfWeek:{$dayOfWeek:$creationDate},
startWeek:{$week:$creationDate},
价格:“$price”
}
},
{
$lookup:{
来自:“收藏2”,
localField:“TimeStart”,
foreignField:“TimeStart”,
as:“周末小时”
}
},
{
$REWIND:$WEEKANDHOURE
},
{
$unwind:“$weekAndHour.Utilization”
},
{
$项目:
{
时间起点:1,
一月一日,
开始日期:1,,
星空:1,
星期一开始:1,
startWeek:1,
价格:1,,
利用率:$weakandhour.利用率
}
}
]).toArray(异步函数(错误、结果){
如果(错误)抛出错误;
//为所有工作日和小时(总共168小时)创建集合以进行聚合
对于(var mk=0;mk