Mongoengine中no_cache()对querySet的影响

2024-01-17

在mongoengine的官方文档中,它说从0.8开始,no_cache()被添加到mongoengine中。它能给我们带来什么好处呢? no_cache的典型应用场景是什么?


Mongoengine 维护者在这里 - 默认情况下(历史上),mongoengine 会在您迭代查询集时缓存查询集的所有结果。这样做的好处是,如果您重新迭代同一变量,则不会触发查询,但缺点是将所有内容都保留在内存中。 IE:

class User(Document):
    pass

users = User.objects()         # users is a queryset, it didn't hit the db yet

_ = [us for us in in users]    # hits the db and caches all user instances in the users object
_ = [us for us in in users]    # does not hit the db anymore, uses the users cached data


users = User.objects().no_cache()
_ = [us for us in in users]    # hits the db and caches all user instances
_ = [us for us in in users]    # hits the db again

使用缓存听起来是个好主意,但实际上您很少会迭代同一个查询集 2 次,如果您迭代非常大的集合,内存消耗可能会成为问题。

请注意,将来可能会更改为使用no_cache默认版本

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

Mongoengine中no_cache()对querySet的影响 的相关文章

  • 带有卷的 docker 中的 Mongo db 持久化

    我正在尝试创建一个 mongo 数据库容器 但无法使数据持久化 这是我的 docker compose yml version 3 2 services mongodb image mongo 2 4 command smallfiles
  • 如何更改 MongoDB 用户权限?

    例如 如果我有这个用户 gt db system users find user testAdmin pwd some hash roles clusterAdmin otherDBRoles TestDB readWrite 我想给那个用
  • Mongodb 限制聚合查询中的数组

    我正在尝试编写一个查询来返回每个类别中的前 X 个术语 例如前 5 个 前 10 个等 每个术语都有一个关联的类别 并且基于另一个术语的帮助堆栈溢出问题 https stackoverflow com questions 25666187
  • Mongodb 通过查询和分组查找

    简单收集 id 123 name FooBar zone Bas id 456 name Alice zone Bas id 789 name FooBar zone Bas 首先 我构建一个查询来按名称查找所有元素 db collecti
  • Mongodb 数据库上的 SASL 身份验证失败

    我在尝试使用 PHP Mongodb 驱动程序连接到 Mongodb 时遇到问题 实际上我有一个名为 LRS 的数据库 它有一个名为 juano 的用户 在我的设置文件中带有密码 12345 我确信我编写了正确的配置 但是当我在 Larav
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本
  • Mongoose 独特的验证不起作用。保存重复条目

    我正在开发一个 NodeJS 应用程序 其中express是框架 MongoDB是数据库 我正在使用猫鼬插件 我有一个父母模型 我已经添加了独特 真实到场 mobile 但是每当我添加相同的手机号码时 唯一性验证就会失败 除了保存重复的文档
  • 使用填充方法在 sails mongo 中进行深层关联?

    我是 sails js 的新手 我正在使用 sails js 与 Mongodb 我在我的 sails 应用程序中使用 populate 进行深层关联时遇到问题 我有这样的关系 Category has many to many relat
  • spring-data-mongodb 在重新水化对象时到底如何处理构造函数?

    我读过了http static springsource org spring data data mongo docs 1 1 0 RELEASE reference html mapping chapter http static sp
  • NestJs/Mongoose 中的自动递增序列

    我正在将 NodeJs 项目迁移到 NestJs 该项目使用 MongoDB 作为后端数据库 使用 Mongoose 作为 ODM 我当时用的是猫鼬序列 https github com ramiel mongoose sequence插件
  • MongoDB:如何在嵌套数组中更新插入对象?

    考虑以下文档 countries country France cities city Paris population 100 country England cities city
  • Ubuntu 上的 MongoDB 不会作为服务启动,日志中没有任何内容

    我正在 Ubuntu 上运行 MongoDB 2 2 如果我运行 sudo mongod 我得到一个错误 它找不到 data db 这不是数据库所在的位置 在 mongod conf 中 数据库路径被指定为 Ubuntu 10gen 默认值
  • 是否有一个好的开源 MongoDB 队列 C# 驱动程序实现

    并不是说编写一个程序不够容易 或有趣 可以说 不重新发明轮子是有道理的 我已经浏览了各种尝试 但我似乎还没有遇到支持这些标准的实现 具有MongoDB持久化的简单队列OSS系统 基于 C 驱动程序 官方 如此完整的 POCO 序列化 可尾游
  • 如何在 Meteor 应用程序之间共享 MongoDB 集合?

    我希望能够为我的项目提供一个管理应用程序和一个客户端应用程序 理想情况下 我希望能够拥有一个共享的 MongoDB 集合 我怎样才能做到这一点 我尝试在两个不同的应用程序中创建具有相同名称的集合 但发现 Meteor 会将数据分开 知道我能
  • UnhandledPromiseRejectionWarning: MongoError: w 必须是连接处的数字或字符串

    任何人都知道为什么我会收到此错误 UnhandledPromiseRejectionWarning MongoError w 必须是连接处的数字或字符串 我在运行下面的代码时遇到此错误 它的目的是检查用户是否在 mongodb 数据库中 如
  • 在这种情况下如何填充 Mongoose?

    const userSchema new mongoose Schema email type String unique true password String notifications notifiId type Schema Ty
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 嵌套文档上的 MongoDB $lookup

    我是 mongo 的新手 正在努力应对以下问题 我有 2 个集合 结构如下 对于我的一生 我不知道如何对学校收藏进行 lookup 阅读其他帖子 我肯定使用 ObjectId 作为参考以及外部字段 下面是我的结构 Alumni id joh
  • 从命令行创建 MongoDB 用户

    我已经建立了一个 MongoDB 数据库admin仅具有管理权限的用户 无权读取或写入数据库 我现在想做的是 添加新数据库 并向该数据库添加一个新用户 并且 我需要从命令行执行此操作 所以我尝试 mongo admin u admin p

随机推荐

  • Xcode 4.1 代码签名问题

    我已经阅读了很多线程 但在这里找不到类似我的问题的内容 我认为这是一个简单的修复 但我似乎找不到答案 我正在使用 Xcode 4 1 Gold Master 基本上 当我归档我的 Mac 应用程序时 它会经历所有正常流程 构建成功 但是 当
  • 有没有办法像 C# 中的 @"string" 一样转义 powershell 中的字符串

    有没有办法在 powershell 中转义完整的字符串 就像 string 在 C 中的工作方式一样 我正在编写一个脚本 其中有几个如下所示的字符串 D A CCLCSWRPWPDTLOCRRC SY A CCDCLCSWRPWPDTLOC
  • Laravel / Eloquent hasMany 关系 sum()

    我不知道如何立即加载关系列的总和 数据库 简化 如下 TABLES PRODUCT PRODUCT VARIATIONS ID ID NAME NAME AVAILABLE STOCK 我的关系设置如下 public function va
  • 如何在扩展到匹配文件之前访问文字通配符参数?

    背景 我正在编写一个必须接收这些参数的 bash 脚本 文件名 包含一组规则的文件 文件名列表 要处理的文件 可以使用通配符 目标文件夹 将存储文件的处理版本 理论上有 3 个参数 但实际上第二个参数会扩展 因此如果通配符匹配多个文件 参数
  • 关于round_up宏的问题

    define ROUND UP N S N S 1 S S 通过上面的宏 有人可以帮助我理解 s 1 部分 为什么呢 还有宏 例如 define PAGE ROUND DOWN x ULONG PTR x PAGE SIZE 1 defin
  • setter 和 getter 的模板

    我不熟悉模板 但我想知道是否可以将它们用于 setter 和 getter 方法 例如在这种情况下 double exmlClass getA void const return a void exmlClass setA const do
  • 无法使 NSTimer 无效(停止)[重复]

    这个问题在这里已经有答案了 可能的重复 NSTimer 不会停止 https stackoverflow com questions 1031554 nstimer doesnt stop 我正在使用 NSTimer 在播放音频时更新滑块的
  • 使用 REST API 将角色添加到 Google Cloud Platform 上的服务帐号

    我想使用调用 REST API 的 python 脚本在 GCP 上创建一个服务帐户 然后赋予它特定的角色 最好是一些角色these https cloud google com iam docs viewing grantable rol
  • 如何在 C# 中更改选项卡控件的字体属性而不更改其子控件的字体?

    我想更改选项卡控件的字体 因为我希望选项卡页标题中的文本看起来更大 但是 当我更改设计器中选项卡控件的字体属性 我使用的是 MS VStudio 2010 时 其子控件的字体也会更改 例如标签和树视图 这是我不打算做的 我只想更改选项卡页标
  • 验证失败时 TextBox 周围的红色边框

    我正在使用 ASP NET MVC 2 当验证失败时 Html DropDownListFor 和 Html TextAreaFor 自动获取红色边框 如何在验证失败时使 TextBox 使用 Html TextBoxFor 的四个边框变为
  • React-native,monorepo:无法解析模块@babel/runtime/helpers/interopRequireDefault

    我已经在 monorepo 中设置了一个反应本机应用程序作为工作区 我这样做是因为我想分享我在移动应用程序和网络应用程序之间创建的一些反应组件 我的仓库的基本结构是 root package json with nohoist expoap
  • 带有“未定义”参数的 JavaScript 函数[重复]

    这个问题在这里已经有答案了 浏览 Modernizr 源代码我发现了奇怪的事情 window Modernizr function window document undefined 之后 将使用两个参数调用该函数 this this do
  • Spring - server.connection-timeout 不起作用

    In my application properties文件我有 server port 8086 server connection timeout 15000 我知道该文件正在正确加载 因为服务器正在端口 8086 上运行 在应用程序中
  • 在 iOS 上查看大型 PDF 的最佳方式是什么?

    我目前正在使用 QLPreviewController 来查看 PDF 250MB 但是它无法处理真正的大文件 要么我得到的信息是整个文件尚未加载 要么整个应用程序死掉了 我还需要自定义使用 QLPreviewController 不可能实
  • 如何重建 Jenkins 管道

    我们一直在使用 Rebuilder 插件 https wiki jenkins io display JENKINS Rebuild Plugin https wiki jenkins io display JENKINS Rebuild
  • 在 powershell 中同时按下 Windows 徽标键 + Alt + PrtScn 的多个按键?

    我通过引用链接尝试了下面的代码 但无法一次按下这些键 我需要改变吗 code namespace SendTheKeys class SendIt public static void Main string args System Run
  • 如何在 QML 中将项目拖动到圆圈内?

    下面的代码允许在由最小和最大拖动值定义的矩形区域中拖动红色小矩形 我希望它只持续到半径为 100 的父矩形的边界 这意味着它现在是一个圆 如何在 QML 中将项目拖动到圆圈内 Window width 200 height 200 visi
  • 不能一起使用 Scanner.nextInt() 和 Scanner.nextLine() [重复]

    这个问题在这里已经有答案了 我必须获得字符串输入和整数输入 但输入顺序应该是整数先出现 然后应要求用户输入字符串 Scanner in new Scanner System in input in nextLine k in nextInt
  • 计算矩阵列中数字的重合 - MATLAB

    我有一个矩阵 A 其形式为 实际上要大得多 205 204 201 202 208 202 如何逐列计算数字的重合 然后将其输出到矩阵 我希望最终的矩阵从 min A max A 或能够指定特定范围 开始 从顶部到底部运行 并计算每列中数字
  • Mongoengine中no_cache()对querySet的影响

    在mongoengine的官方文档中 它说从0 8开始 no cache 被添加到mongoengine中 它能给我们带来什么好处呢 no cache的典型应用场景是什么 Mongoengine 维护者在这里 默认情况下 历史上 mongo