gpt4 book ai didi

ruby-on-rails - 使用 Mongoid 从数据库延迟下载字段,或处理大型文档

转载 作者:可可西里 更新时间:2023-11-01 10:35:01 25 4
gpt4 key购买 nike

我们将 Mongo 数据库设计为高度非规范化,导致我们集合中的许多文档包含非常大的数组作为某些字段。自然地,这会导致从我们的数据库下载的时间超过必要的时间,因为文档实在是太大了。

每当我们需要从数据库中获取一些记录时,我通过使用 .only 来仅选择我想要的字段来减轻这对性能的影响,但这需要我在可能需要之前下载额外的数据,并且一般来说,当我查询文档时,跟踪最终需要哪些字段对我来说涉及更多。

Mongoid 是否有一种方法可以简单地将我的模型中的特定字段定义为应该延迟加载的字段,以便我在第一次访问它们时从服务器获取它们?我搜索了 Mongoid 的文档,看它是否有内置的东西,但我没有看到任何这样的东西。也许有第三方 gem 可以将此功能添加到 Mongoid?

最佳答案

Mongoid 不支持从服务器延迟加载数据,也不知道有任何插件可以做到这一点。

虽然从技术上讲,您可以将其添加到 Mongoid,但您最好还是手动指定 only,以便一次加载您需要的内容。如果您根据使用情况延迟加载字段,则每次访问 nil 字段时都必须从 MongoDB 中提取数据。

意味着如果您在原始文档加载之上访问了 5 个不同的字段,您将向 MongoDB 发送 6 个查询,这涉及一般往返/处理,而不是仅在 only 中指定它第一名。

关于ruby-on-rails - 使用 Mongoid 从数据库延迟下载字段,或处理大型文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com