如何获取猫鼬数组中推送的项目的对象ID

时间:2020-09-16 07:49:45

标签: node.js mongodb mongoose mongoose-schema

我正在尝试在Mongodb文档的数组中推送对象。

const relative_history = {
        purposeOfVisit: purposeOfVisit,
        currentIssue: currentIssue,
};

await relative_details.history.push(relative_history);
await user_details.save();

如果我对await relative_details.history.push(relative_history);放置一个常量,则该常量仅显示数组中存在的元素数。如何获取被推送对象的对象ID?

2 个答案:

答案 0 :(得分:0)

您可以使用如下回调函数:

user_details.save((err, doc)=> {
  if (err) return console.error(err);
  console.log(doc);
});

答案 1 :(得分:0)

为了保存user_details,我假设您之前已经执行过查找操作以基于某些查询获取文档,并且relative_details是user_details中的一个字段,因此最后您可以执行以下代码:< / p>

const relative_history = {
        purposeOfVisit: purposeOfVisit,
        currentIssue: currentIssue,
};

try {

    const user_details = await "YOUR_USER_SCHEMA".findById("YOUR_USER_ID");

    if(!user_details){throw New Error("User not found")}

    user_details.relative_details.history.push(relative_history);
    const updated_user_details = await user_details.save();
    console.log(updated_user_details._id);

} catch(err){// handle errors}