使用猫鼬基于ObjectId保存数组值

时间:2019-01-27 19:10:40

标签: node.js mongodb mongoose

我尝试将每个文档以ObjectId的形式保存在数组中,

{
  materials: {
    active: "Steel",
    description: "List of materials",
    text: "Materials",
    value: ["5c44ea8163bfea185e5e2dfb", "5c44ea8163bfea185e5e2dfc"]
  }
}

我使用了一个promises数组来保存每个异步值并保存回调_id:

const reference = {
        materials: {
            ...project.materials,
            value: await Promise.all(project.materials.value.map(
                async (value) => {
                    const { _id } = await Material.findOneAndUpdate({ name: value.name }, value, { upsert: true, new: true, setDefaultsOnInsert: true }).exec();
                    return mongoose.Types.ObjectId(_id);
                }
            ))
        },
...
}

还有另一种更简单的方法吗?

0 个答案:

没有答案