猫鼬:强制转换为ObjectId的值

猫鼬:强制转换为ObjectId的值,第1张

猫鼬:强制转换为ObjectId的值

引用的猫鼬文档中的示例

Number
用于该
personSchema._id
字段以及
ObjectId
其他字段。

我假设他们在示例中这样做是为了证明可以使用其中任何一个。如果未

_id
在架构中指定,
ObjectId
将为默认值。

在这里,您的所有记录都有一个

_id
字段,它是
ObjectId
,但是您将它们视为数字。此外,除非您省略了定义它们的部分,否则诸如
personID
taskID
不存在字段。

如果确实要对所有

_id
字段都使用数字,则必须在模式中进行定义。

var newsSchema = new Schema({  _id: Number,  _creator: {type: ObjectId, ref: "Person"},  // ...})var personSchema = new Schema({  _id: Number,  // ...})

然后创建具有特定ID的新闻项,并将其分配给创建者:

var tony = new Person({_id: 0});var newsItem = new NewsItem({_id: 0, creator: tony.id});

然而,需要注意的一点是这里,当你使用其他的东西比

ObjectId
_id
领域,你承担自己管理这些价值的责任。ObjectId是自动生成的,不需要额外的管理。

编辑:我还注意到您在关联的两侧都存储了引用。这是完全有效的,您有时可能想要这样做,但是请注意,您必须自己将引用存储在

pre
钩子中。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5087971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存