MongoDB 中哪个关系更好?

Which relation in MongoDB is better?

对于我的整个项目,我将我的多个集合关联起来。

User model

Name:string, email:string, password:string,
vehicles:[{
  "vehicleId", "vehicleId"
}]     

车型

vehicleId:string,
vehicleName: string    

这是最好的方法吗?

我正在使用这种方法,因为在 mongoose 中我可以编写 user.vehicle.populate() 来获取所有车辆数据

这取决于 vehicles 数组中的条目数量。

如果您计划存储的车辆少于几百辆,则在数组中嵌入依赖项是最佳解决方案,因为它允许一次检索所有用户数据。

这意味着您甚至不必在数组中只存储车辆的 ID,您可以只放入整个对象。这部分取决于您的应用程序必须访问数据的方式:

  • 如果您从未独立于用户使用车辆,那么嵌入整个车辆文档会很好,因为您可以一次检索所有数据而无需加入两个不同的集合(昂贵)。
  • 尽管如果您确实需要独立的这些集合,最好只在数组中包含 id,因为它会简化您的车辆查询。

另一方面,如果车辆开始堆叠到数千辆,将它们全部嵌入到一个数组中肯定是不好的,并且随着数据量的增长,您将遇到性能问题。然后,您应该使用外键在 vehicle 文档中引用 user 文档。

这个视频是我所知道的关于 mongodb 架构设计的最佳资源:https://youtu.be/leNCfU5SYR8