MongoDB:使用子代数组填充父代vs通过父代ID搜索子代
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB:使用子代数组填充父代vs通过父代ID搜索子代相关的知识,希望对你有一定的参考价值。
我正在和我的经理就数据库结构发生争执。
我们需要创建一个具有多个子代的父类型对象,并查询属于该父代的所有子代的列表。
我想在父对象中使用子ObjectId的数组,这些对象在创建子对象时添加。可以使用FindById找到父级,然后可以使用populate()填充子级列表。
我的经理坚持not在父级中存储子级数组,但仅将父级ID作为字段存储在每个子级对象中,然后通过搜索具有父级子级的所有子级对象来获取列表ID。他声称这将是同样快的,因为“无论如何,填充只会通过id搜索对象”。
但是,对于我来说,这一样快是不可思议的。 _id字段的全部要点不是为文件的位置编制索引以便快速检索吗?难道不应该找到一个拥有_id的对象列表,而不是在整个数据库中查找给定字段与给定值匹配的对象时,更快,更可扩展吗?
在这种情况下是否有理由使用填充? (当然,在子对象中存储对父对象的引用也是一种选择-但他坚持not完全在父对象中存储子对象的数组。)
我正在和我的经理就数据库结构发生争执。我们需要创建一个具有多个子代的父类型对象,并查询属于该父代的所有子代的列表。我想要...答案
最佳方法不是一个简单的选择,它取决于数据的性质,将来对数据集的期望以及现在和将来如何查询数据。 以上是关于MongoDB:使用子代数组填充父代vs通过父代ID搜索子代的主要内容,如果未能解决你的问题,请参考以下文章