我写了一些功能代码,不知道如何改善此代码段。目前,我对数据库进行了两次调用,我想知道是否可以使用聚合,猫鼬forEach方法或任何其他想法以干净的方式合并它们!
我有两个具有一对多关系的表格:用户和天数。用户可以有很多天,每天只有一个用户。我想为每个用户创建唯一的一天并将其推送到嵌入式数据数组中,因为我会将用户信息存储到每天的对象中。
用户n:1天
User.find().then
(
students => {
for(let student of students){
const newDay = new Day({
date: moment().format("YYYY MM DD"),
});
newDay.save();
User.findOneAndUpdate({_id: student.id},{'$push':{data: newDay.id}})
.then
(
() => {
console.log("Success");
}
);
}
}
)
此代码有效,但我不确定完全遵循最佳做法。
答案 0 :(得分:0)
您可以通过以下方式为每个Day
添加新的User
:
new Day({
date: moment().format("YYYY MM DD")
}).save().then((newDay) => {
User.updateMany({}, {'$push':{data: newDay.id}})
.then(() => {
console.log("Success");
});
});