gpt4 book ai didi

mongodb - 在 MongoDB 中创建新元素时显示对象而不是 db-ref ObjectId

转载 作者:可可西里 更新时间:2023-11-01 09:52:54 26 4
gpt4 key购买 nike

DB ref 在以下情况下工作:

Element.
findOne({unit: unit_id,).
populate('unit').
exec(function(err, element) {
console.log(element)
}

会显示

{
"unit": {
"id": "10251179680282633",
"__v": 0,
},
"_id": "50b92eec29921b2531000003",
"__v": 0,
"created_at": "2012-11-30T22:10:52.513Z"
}

但是,如果我创建一个新单元并将我的单元放入我的元素中并保存,

unit = new Unit();
element = new Element()
element.unit = unit;

当我这样做时:

console.log(element)

它返回:

{
"unit": "50b9377d29921b2531000004",
"_id": "50b9377d29921b2531000005",
"created_at": "2012-11-30T22:47:25.361Z"
}

这不是我所期望的,因为我希望将单位视为对象而不是 ID。

有什么提示吗?

最佳答案

这是意料之中的

在您的console.log(element) 示例中,element 包含对 ObjectID 的引用
Mongoose populate 根据存储在您的 element 文档中的 ID,巧妙地从它自己的集合中获取 unit

本页对此进行了更详细的解释
http://mongoosejs.com/docs/populate.html

关于mongodb - 在 MongoDB 中创建新元素时显示对象而不是 db-ref ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com