Doctrine MongoDB 结果缓存

2024-01-09

如何缓存 Doctrine MongoDB 结果?查看配置代码,它似乎没有像标准 Doctrine 那样内置结果缓存,只有查询缓存。

我想过在应用程序中创建自己的缓存层,但返回的对象非常重,因为它们包含视图不需要的大量 Doctrine 逻辑。如何将对象配对,使它们实际上只是数据容器?


Doctrine MongoDB ODM 不支持查询缓存,因此这绝对是您暂时需要在应用程序中处理的事情。

如果您遇到重对象的问题,很可能是代理实例(对于引用的文档),因为它们包含对内部 Doctrine 服务(例如 UnitOfWork)的引用。如果您想有效地缓存这些,您本质上需要在存储之前剔除这些引用,然后在从缓存中获取后恢复它们。这可能比它的价值更麻烦,但它会将对象减少到您想要的数据容器。

或者,如果您使用查询生成器,则可以禁用水合作用,然后对返回的数组结果实施缓存。除此之外,您可以研究应用程序中的缓存视图(这在 Symfony2 中是理想的,其中一个请求可能会到达多个控制器,每个控制器都可以应用自己的缓存规则并可选择使用 ESI)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doctrine MongoDB 结果缓存 的相关文章

随机推荐

  • 如何同时静默对 Rails 控制器操作的调用

    我已经弄清楚如何通过将操作方法 内的所有内容包装在 logger silence 块中来使操作的内容静音 但是 我仍然收到对日志文件中显示的操作的调用 I E Processing DashboardController update fo
  • 如何从 获取持续时间,如 int milli 和 float 秒?

    我正在尝试使用 chrono 库来设置计时器和持续时间 我希望能够拥有一个Duration frameStart 从应用程序启动 和一个Duration frameDelta 帧之间的时间 我需要能够得到frameDelta持续时间为毫秒和
  • 在 Xamarin.iOS 中创建可扩展的表格视图?

    我正在尝试使用创建可扩展的表格视图Xamarin iOS具有手风琴类型的功能 例如 最初会有一些行 点击任何行 单元格将扩展到表视图中的其他一些行 Thanks 嘿 我制作了一个可扩展表格视图的示例here https github com
  • 我可以使用 OpenCL 分配设备内存并在 CUDA 中使用指向内存的指针吗?

    假设我使用 OpenCL 来管理内存 以便 GPU CPU 之间的内存管理使用相同的代码 但我的计算使用优化的 CUDA 和 CPU 代码 不是 OpenCL 我仍然可以使用 OpenCL 设备内存指针并将它们传递给 CUDA 函数 内核吗
  • 学习正确使用VBO

    因此 我一直在尝试自学使用 VBO 以提高 OpenGL 项目的性能并学习比固定功能渲染更高级的东西 但我还没有找到太多像样的教程 到目前为止我发现的最好的是宋浩的教程 http www songho ca opengl gl vbo ht
  • 修改 beforeFind 回调中所需的 Containable 字段?

    在我的 CakePHP 1 2 5 应用程序中 我有一个Profile模型属于User模型 用户模型有一个username字段 并且当执行find 在 Profile 模型上 我希望始终自动检索User username也 我认为修改我的配
  • Angular2 中组件属性变化的可观察

    当在 Angular 2 中创建一个通过 Input 具有输入属性的组件时 如何从对该属性 Input 所做的更改中获取可观察值 不要与用户表单输入混淆 export class ExampleComponent implement OnC
  • 隐式解包的选项真的是可选的吗?

    在 Swift 4 0 中 以下代码无法编译 var str String func someFunc s inout String someFunc str 现在我想象str属于类型String 事实上 Swift 编译器似乎也同意 无法
  • 在 C# 中解密使用 RSA 在 iPhone 上加密的内容时遇到问题

    到目前为止 我已经花了两天时间研究这个问题 并梳理了我可以使用的所有资源 所以这是最后的手段 我有一个 X509 证书 其公钥已存储在 iPhone 的钥匙串中 此时仅限模拟器 在 ASP NET 方面 我已在证书存储区中使用私钥获取了证书
  • 如何使用 aws-java-sdk 从 S3 中逐块读取文件

    我正在尝试从 S3 将大文件读取成块 而不切割任何行以进行并行处理 让我通过例子来解释一下 S3上有1G大小的文件 我想将此文件分成 64 MB 的块 我可以很容易地做到这一点 S3Object s3object s3 getObject
  • 带参数的静态资源构造函数

    我必须在 XAML 文件中创建静态资源
  • 找出用户在浏览器历史记录中的位置

    我知道我使用访问浏览器历史记录history对象 具体来说 我可以使用history back history forward and history go item number or history go url 我试图确定用户当前在浏
  • 如何将有符号整数转换为无符号整数?

    这段代码就像 int x 24 uint y uint x Console WriteLine y o p is 4294967272 为什么 C 中会出现这种类型的行为 详细阐述会很有帮助 谢谢你们 负数 例如 24 表示为二元补码 se
  • 使用实体管理器本机查询插入我的 JPA

    我正在尝试在我的数据库中插入数据 我在我的项目中使用 JPA 这就是我的豆子的样子 PersistenceContext EntityManager em em createNativeQuery INSERT INTO testtable
  • 如何在 quantmod 包中创建技术指标

    我是 R 的新手 在创建技术指标时遇到一些问题 更具体地说 我想创建一个指标 Fibonacci 这将被添加到chartSeries由 5 条水平线组成 我正在使用的数据是股票的收盘价 因此 我想要创建的图表将在最高收盘价点有一条水平线 在
  • 在 Delphi 控制台应用程序中使用 VCL TTimer

    正如题主所说 我在 Delphi 中有一个控制台应用程序 其中包含TTimer多变的 我想做的是将事件处理程序分配给TTimer OnTimer事件 我对 Delphi 完全陌生 我曾经使用 C 向事件添加事件处理程序是完全不同的 我发现
  • Google Guice 是否处于活动状态?

    一年多没有发布任何版本 甚至没有修复小错误 对存储库的提交很少 并且过去两个月没有提交 使用这个库开始新项目安全吗 Guice 4 现在处于测试阶段 请参阅https github com google guice https github
  • 使用 make 文件编译单独目录中的文件

    好吧 我一直无法掌握 make 和 makefile 我尝试通读手册页 但没有成功 所以我就来这里了 L 我有一堆文件开始在一个文件中变得非常不受管理 我正在尝试制作一个操作系统 并且我想尝试将这些文件拆分为单独的子目录 请参阅下面的结构
  • 使用 COUNT 个其他字段更新列是 SQL?

    我设置了以下表格 Articles ID TITLE CONTENT USER NUM COMMENTS COMMENTS ID ARTICLE ID TEXT 我需要一个 sql 语句 它使用针对文章的评论计数来更新文章表的 NUM Co
  • Doctrine MongoDB 结果缓存

    如何缓存 Doctrine MongoDB 结果 查看配置代码 它似乎没有像标准 Doctrine 那样内置结果缓存 只有查询缓存 我想过在应用程序中创建自己的缓存层 但返回的对象非常重 因为它们包含视图不需要的大量 Doctrine 逻辑