如何解决MongoDB schema 设计,可以同时嵌入和引用数据吗?
我是 MongoDB 的新手,我已经阅读了许多关于嵌入和引用文档的利弊的建议,但找不到任何使用两者的示例。例如,如果我想建立一个好友列表,并且只想在每次有人想看到他们的好友列表时看到姓名和头像,我是否可以将这些数据与好友对象的 id 一起嵌入?这些数据是重复的,但会节省所需的查询次数。
person = {
_id: '123abv',name: 'bob',profilePic: '...',...other props,friends: [
{
_id: '124sdf',name: 'tom',profilePic: '...'
},...other friends
]
}
解决方法
MongoDB 模式设计几乎每次都取决于您的应用程序为了提高速度而要执行的查询。 复制信息的主要缺点是它需要的空间以及更新嵌入文档和文档本身所需的额外工作。
我的建议是:
- 如果您的应用程序主要用于查询文档,它几乎没有更新并且空间不成问题(现在往往不是这样),您可以复制信息以提高速度。它将帮助您避免复杂的聚合并在您的数据库中查找查询。
- 如果您的应用程序遭受大量更新并且文档之间存在关系,首先,我建议您检查关系数据库,因为它们在解决关系时具有更好的性能。如果 MongoDB 是强制性的,我可能会在不复制信息的情况下引用文档,从而留下一些性能。无论如何,在数据库中实施分片或索引总是可以提高性能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。