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钩子中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)