承认这一点我有点尴尬,但我在概念化如何在非关系世界中构建数据时遇到了麻烦。尤其是考虑到大多数文档/KV 存储的功能略有不同。
我想从一个具体的例子中学习,但我找不到任何人讨论你将如何构建,例如,使用 CouchDB/Redis/MongoDB/Riak/etc 的博客。
我认为有几个问题很重要:
最佳答案
首先,我认为您希望从列表中删除 redis,因为它是键值存储而不是文档存储。 Riak 也是一个键值存储,但你可以是一个文档存储库,如 Ripple .
简而言之,使用文档存储对应用程序建模就是要弄清楚:
您希望在另一个文档中存储(嵌入)哪些数据。如果该文档仅属于一个文档,那么将其存储在另一个文档中“可能”是一个不错的选择。
{ article : { comments : [{ content: 'yada yada', timestamp: '20/11/2010' }] } }
您需要考虑的另一个警告是嵌入文档的大小有多大,因为在 mongodb 中,嵌入文档的最大大小为 5MB。
{ 文章:{ 标签:['news','bar'] } }
{ user: { role_ids: [1,2,3]}}
这是关于使用文档存储进行建模的简要概述。祝你好运。
关于mongodb - 您将如何使用文档存储(例如 CouchDB、Redis、MongoDB、Riak 等)构建博客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202867/
相关文章:
mongodb - 命令以非零退出代码 : Error executing in Docker Co
node.js - MongoDB 与 Docker "failed to connect to s
java - Spring - mongodb - 聚合 - 需要 'cursor' 选项
mongodb - 从 mongo db $pull 中删除嵌入文档不起作用
mongodb - 如何使用 map/reduce 处理 10000 多个唯一键以在 MongoDB
c# - 如何将 MongoDB 驱动程序与 C# ASP.NET Core API 框架一起使用?