我想对数组的长度运行以下for循环,但它要做的就是一一添加。
有什么主意吗?
EndorsedSkillSchema.methods = {
async userEndorsedSkill(arr) {
for (var i = 0; i < arr.length; i++) {
const skill = await Skill.findOne({ _id: arr[i]._id });
const s = skill.toJSON();
this.skills.push(arr[i]._id);
await this.save();
pubsub.publish(SKILL_ENDORSED, { [SKILL_ENDORSED]: { ...s } });
return {
endorsed: true,
...s
};
}
}
};
答案 0 :(得分:1)
您可以使用find()
和{$in: ids}
const arr = [{_id:1},{_id:2},{_id:3}];
const ids = arr.map(e=>e._id);
Skill.find({_id: {$in: ids}}, function(err, result){
//callback here maybe .insertMany()
});