我正在和我的经理就数据库结构发生争执。
我们需要创建一个具有多个子代的父类型对象,并查询属于该父代的所有子代的列表。
我想在父对象中使用子ObjectId的数组,这些对象在创建子对象时添加。可以使用FindById找到父级,然后可以使用populate()填充子级列表。
我的经理坚持not在父级中存储子级数组,但仅将父级ID作为字段存储在每个子级对象中,然后通过搜索具有父级子级的所有子级对象来获取列表ID。他声称这将是同样快的,因为“无论如何,填充只会通过id搜索对象”。
但是,对于我来说,这一样快是不可思议的。 _id字段的全部要点不是为文件的位置编制索引以便快速检索吗?难道不应该找到一个拥有_id的对象列表,而不是在整个数据库中查找给定字段与给定值匹配的对象时,更快,更可扩展吗?
在这种情况下是否有理由使用填充? (当然,在子对象中存储对父对象的引用也是一种选择-但他坚持not完全在父对象中存储子对象的数组。)
我正在和我的经理就数据库结构发生争执。我们需要创建一个具有多个子代的父类型对象,并查询属于该父代的所有子代的列表。我想要...