使用 Mongoose 在所有现有集合中查找引用文档
Finding a referenced document in all the existing collection using Mongoose
我有 3 个合集:
事件:
{
_id: ObjectId(54ca0f2506d0c6b673b2fde8),
_reference: ObjectId("54fd786c549e96f70f9c027d")
},
{
_id: ObjectId(54acd81941a646d768922cfa),
_reference: ObjectId("54fd786c549e96f70f9c027d")
}
post秒:
{
_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"
}
创建 post 或评论时,也会在集合 "events" 中创建一个文档,其中 属性 名为“_reference”。此“_reference”将保存评论的 ObjectId 或 post.
然后我需要恢复集合 "events".
中每个文档引用的所有文档(保存在其他集合中;即 posts 和评论)
我使用了填充方法,但是当我需要签入所有现有集合时,它只允许我签入一个集合。
下面是我如何在 mongoose 模型中定义引用 属性 的示例:
_reference: {type: Schema.Types.ObjectId, ref: 'posts'}
提前致谢!
您不能定义事件的架构,例如:
_reference: {type: Schema.Types.ObjectId, ref: 'posts'}
并希望它也能引用评论。因为您明确指出该参考文献适用于 posts.
更好的方法是在 events
中为您要保存的对象保存一个 ObjectID
,添加一个名为 type
的字段,您可以在其中说明它是评论还是a post,并据此查找ObjectId
.
的指定集合
我有 3 个合集:
事件:
{
_id: ObjectId(54ca0f2506d0c6b673b2fde8),
_reference: ObjectId("54fd786c549e96f70f9c027d")
},
{
_id: ObjectId(54acd81941a646d768922cfa),
_reference: ObjectId("54fd786c549e96f70f9c027d")
}
post秒:
{
_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"
}
创建 post 或评论时,也会在集合 "events" 中创建一个文档,其中 属性 名为“_reference”。此“_reference”将保存评论的 ObjectId 或 post.
然后我需要恢复集合 "events".
中每个文档引用的所有文档(保存在其他集合中;即 posts 和评论)我使用了填充方法,但是当我需要签入所有现有集合时,它只允许我签入一个集合。
下面是我如何在 mongoose 模型中定义引用 属性 的示例:
_reference: {type: Schema.Types.ObjectId, ref: 'posts'}
提前致谢!
您不能定义事件的架构,例如:
_reference: {type: Schema.Types.ObjectId, ref: 'posts'}
并希望它也能引用评论。因为您明确指出该参考文献适用于 posts.
更好的方法是在 events
中为您要保存的对象保存一个 ObjectID
,添加一个名为 type
的字段,您可以在其中说明它是评论还是a post,并据此查找ObjectId
.