我没有持续使用nosql,我有一个主表存储对外部表的引用。搜索我使用elasticsearch和我需要连接(连接表)要获取所需的信息,但nosql不使用连接。我找到了孩子/家长解决方案,但它有问题。有没有替代方案或者更好的方法来改变结构,使用嵌套对象?
答案 0 :(得分:2)
Nosql有一些缺点,比如 NoJoins 。到目前为止,我们需要在mongodb中查询两个或三个集合。
1)我们需要在您存储之前执行连接。如果您想从一组数据中计算出一个数据,请执行 mapReduce 并存储在集合中。< / p>
2)如上所述嵌套对象也更有效。如果硬盘空间ID不是问题,你可以使用嵌套docs.But我mongodb你不能创建一个比 16mb更大的doc 强>
使用Elasticsearch
3)在ES中,如果您希望数据形成多个索引,则可以使用别名。 参考http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-aliases.html
4)在弹性搜索中持续父子概念。它可能看起来很复杂。但它有很多帮助。
如果你的应用程序写得更多而阅读量更少则意味着在阅读期间执行加入。像两个或更多个集合一样获取单个信息
如果您的应用程序更易于阅读,更少写入在存储文档之前执行加入。嵌套对象是正确选择,您将编写一次通过一个电话阅读。它会大大减少CU的使用量。
HOpe it helsp ..!