我有shema:
const MessageSchema = new Schema(
{
parent: { type: Schema.Types.ObjectId,ref: 'Message',default: null },message: { type: String,default: '' },reply: { type: Schema.Types.ObjectId,}
);
我需要通过消息和对消息的评论进行某种简单的聊天。我猜评论和消息实际上是相同的模式。因此,如果我创建消息,而不是对任何消息的评论,我只需使用父级“null”创建它。但是,如果我对消息创建评论,我会创建带有父级的文档,ID 为我刚刚评论的消息。 所以我想得到一些消息的所有评论我只是像这样做 mongo 请求
find({parent: <messageId>})
例如我有收藏:
{
_id: "ertgewrhyer436346rteyre"
parent: null,message: 'I know the secret',reply: null
},{
_id: "dsgerwerg4w5jyjrt",parent: "ertgewrhyer436346rteyre"
message: 'Ok',reply: null
},{
_id: "jmymesfhbuyt",parent: "ertgewrhyer436346rteyre"
message: 'I need to know too',reply: null
},{
_id: "5y46jyewrherhre",parent: "ertgewrhyer436346rteyre"
message: 'Yes yes yes',reply: null
}
但我不知道如何让 mongo 请求返回这个:
{
_id: "ertgewrhyer436346rteyre"
parent: null,reply: [
{
parent: "ertgewrhyer436346rteyre",message: 'Ok',{
parent: "ertgewrhyer436346rteyre",message: 'I need to know too',message: 'Yes yes yes',reply: null
}
],}
我知道我将字段回复设为带有 ref: 'Message' 的数组,但我认为这不是一个好主意,因为可能会有很多评论,而 mongo 也有其局限性。