首页 > 解决方案 > 在同一集合中创建对象的 mongodb 模式数组或创建新集合的更好方法保存引用

问题描述

我很想知道哪种方法是设计架构的更好方法

1)假设集合 xyz

{
field1:anything
field2: anything
pqr:[{ name:String , value:Number} ]
}

2)

 xyz collection        and pqr collection
     {                                 {
                                           reference id of xyz,
                                           name:String , 
                                          value:Numbee
    field1:anything                    }
    field2: anything

    }

注意:考虑第一种方法数组的大小不会超过 250

标签: node.jsdatabasemongodbmongoosemongoose-schema

解决方案


我认为第一种方法比第二种方法好,因为数组字段中的对象并不复杂。但我认为你应该看到你会回应的请求。例如,如果您有请求GET /xyz并且不需要返回 pqr 数组,则选择第一种方法。但是,如果您有请求GET /xyz/:id/pqr或需要在第二种方法中返回 pqr 数组GET /xyz会更好,因为您可能希望对此请求进行分页,并且第二种方法很容易实现,因为是 a db.collection.find(query).skip(page * size).limit(size),但在第一种方法中您必须解决这个问题在内存中或聚合中。

PD:对不起我的英语。


推荐阅读