0

我有 3 个系列:

事件:

{
   _id: ObjectId(54ca0f2506d0c6b673b2fde8),
   _reference: ObjectId("54fd786c549e96f70f9c027d")
},
{
   _id: ObjectId(54acd81941a646d768922cfa),
   _reference: ObjectId("54fd786c549e96f70f9c027d")
}

帖子:

{
   _id: ObjectId(54fd786c549e96f70f9c027d),
   title: "This is a post",
   content: "This is the content of the post"
}

注释 :

{
   _id: ObjectId(54fd786c549e96f70f9c027e),
   content: "This is a comment on a post"
}

创建帖子或评论时,还会在集合“events”中创建一个文档,该文档具有名为“_reference”的属性。此“_reference”将保存评论或帖子的 ObjectId。

然后我需要恢复集合“事件”中每个文档中引用的所有文档(保存在其他集合中;即帖子和评论)。

我使用了填充方法,但这只允许我在需要签入所有现有集合时签入一个集合。

Bellow 是我如何在 mongoose 模型中定义参考属性的示例:

_reference: {type: Schema.Types.ObjectId, ref: 'posts'}

提前致谢 !

4

1 回答 1

1

您不能定义事件的架构,例如:

_reference: {type: Schema.Types.ObjectId, ref: 'posts'}

并期望它也能引用评论。因为您明确地告诉引用是针对帖子的。

更好的方法是为要保存的对象保存一个ObjectIDin events,添加一个名为typewhere 你会说它是评论还是帖子的字段,然后根据该字段查找ObjectId.

于 2015-03-09T13:37:52.910 回答