【发布时间】:2016-08-10 00:20:16
【问题描述】:
当在我的应用程序上创建用户时,他们的详细信息会使用 mongoose 保存在 MongoDB 上。 user schema 包含子文档,如果使用 user.save 函数后的子文档,我正在尝试访问 _id。
架构如下:
{
name: String,
email: String,
address: String,
phone:[
{landLine: Number,
mobile: Number}
]
}
我可以像这样轻松访问姓名、电子邮件和地址:
console.log(user.name + user.email + user.address)
我试过user.phone._id,但它返回undefined。我想是因为phone 是一个对象数组。
user.save(function(err) {
if (err)
throw err;
else {
console.log("user ID " + user._id); // SUCCESS!!
console.log("user sub-document ID " + user.phone._id); // UNDEFINED!!
return (null, user);
}
});
如何在创建用户并保存到 mongoDB 后立即访问 save 函数内的子文档的_id?
【问题讨论】:
-
在你的架构中
phone不是子文档,所以它没有_id。 -
@AlexanderMac 我认为问题没有正确显示架构。它可能真的是
phone: [{ landline: Number, mobile: Number }],但如果能得到确认会很好。当然,“第一个”元素是user.phone[0]._id,但在上下文中也不清楚这是一个数组元素的“初始”保存还是添加另一个元素 -
@NeilLunn 是的,对于您正确的架构感到抱歉。我会更新我的问题
-
看起来您仍然没有正确表示架构。
-
这几乎就是我所了解的,因此在您的问题中寻找一些上下文。实际上,您是如何向数组中添加其他项目的?更重要的是,在您实际申请添加到数组之前,数据实际上是如何进入的?这为不同的方法提供了一些背景信息。
标签: javascript node.js mongodb mongoose mongodb-query