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的影响 的相关文章

  • 我需要显式关闭连接吗?

    我持有一个实例MongoClient and DB在我的应用程序中 每次我想执行某些操作时 我都会调用getCollection 我想知道是否需要显式关闭连接 就像connection close 在 JDBC 中 强调一下 我只有一个Mo
  • 如何配置嵌入式 MongoDB 以在 Spring Boot 应用程序中进行集成测试?

    我有一个相当简单的 Spring Boot 应用程序 它公开一个小型 REST API 并从 MongoDB 实例检索数据 对 MongoDB 实例的查询通过基于 Spring Data 的存储库 下面的一些关键代码 Main applic
  • 如何在 MongoDB 聚合框架中处理除零

    我有一系列可以投赞成票或反对票的项目 id 1 name foo upvotes 30 downvotes 10 id 2 name bar upvotes 20 downvotes 0 id 3 name baz upvotes 0 do
  • MongoDB - 使用聚合框架或 MapReduce 来匹配文档中的字符串数组(配置文件匹配)

    我正在构建一个可以比作约会应用程序的应用程序 我有一些结构如下的文档 db profiles find pretty id 1 firstName John lastName Smith fieldValues favouriteColou
  • 将 ObjectId 字段正确映射到字符串

    我正在对 RDBMS 世界进行一些探索 进入 MongoDB 的神秘海洋 我正在使用 Spring Data 来帮助我进行冒险 我需要在两个集合中的文档之间创建手动引用 我读到 DBRef 很昂贵 我的 pojo 是这样的 public c
  • 使用 Mongoose 将数组(“标签”)保存到 MongoDB

    我正在玩 Mongoose 但在保存到数组时遇到问题 例如 我在页面上有一个以逗号分隔的输入字段tags 我从 req body tags 中获取这些内容 删除空格 然后用逗号分隔它们以获得标签数组 现在 如何将该数组保存回我的数据库 我猜
  • NoSQL(MongoDB)与 Lucene(或 Solr)作为数据库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着基于文档数据库的 NoSQL 运动的发展 我最近关注了 MongoDB 我注意到如何将项目视为 文档 就像 Lucene 以及 Solr 用
  • MongoDB req.body 问题

    我有一个非常简单的 Mongo 设置 如下所示 这非常适合从输入字段获取数据并保存数据 一切都在工作 我的问题 我将如何循环遍历前端的 jobs 变量并设置数据 以便它适用于我的模型 不知何故 我需要将其输入到输入中 以便我可以 req b
  • MongoDB - 在父文档中填充 GridFS 文件元数据

    我使用 NodeJS 与 Express MongoDB Mongoose 和 GridFS 来上传和检索文件 我想通过 ID 引用其他文档中的文件 并在查询其他文档时填充文件元数据 例如 如果我有一个包含这样的文档的 用户 集合 id O
  • mongodb C# 异常无法从 BsonType Int32 反序列化字符串

    我是在 C 中使用 mongo db 的新手 但我正在尝试在 mongo db 中导入大型数据库 MyDb 由仅具有简单参数 Id Body Title Tags 的实体组成 这是 mongo 中实体的示例 Id someff asdsa
  • mongodb 通配符匹配特定键的所有值[重复]

    这个问题在这里已经有答案了 我试图弄清楚如何匹配一个键并返回该键的所有值 是否可以将值作为通配符给出 我想在值上使用通配符返回该特定键的所有内容 db collection find key 我还希望这也能返回整个集合 其中的键也与通配符值
  • 猫鼬查找并删除

    我正在尝试删除满足查询的多个文档 但是 我需要这些文档的数据将它们存储在单独的集合中以实现撤消功能 我让它工作的唯一方法是使用多个查询 Data find query exec function err data Data remove q
  • 使用 or 运算符进行 Morphia 查询

    我想知道如何使用 or 运算符编写 Morphia mongodb 查询我这样写了 mongodb 查询 效果很好 db Inv find or sug id 2 grp id 2 但是当我尝试在吗啡中编写此内容时 我感到很困惑 以下查询是
  • Pymongo 中的全文搜索

    即将推出的 MongoDB 2 4 支持全文检索 http docs mongodb org manual release notes 2 4 text indexes 我们在 mongo shell 中使用命令来执行此操作 例如 db p
  • 如何在 mongodb-native findAndModify 中使用变量作为字段名称?

    在使用 mongodb native 驱动程序的这段代码中 我想增加在单独变量中指定的字段的值 问题在于 在这种情况下 inc 子句中的字段名称将是 变量 而不是变量的内容 在查询部分中 所选变量按预期工作并找到正确的 ID var sel
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • 在 cl-mongo 中实现 MongoDB SASL 身份验证

    我已经从 fons 分叉了 cl mongo common lisp MongoDB 库 存储库 因为它已经不再维护并且不支持 SCRAM SHA 1 登录过程 这是我的叉子 https github com mprelude cl mon
  • 将 mongo 数组转换为具有键值对的对象

    我有一个包含字符串数组的 mongo 文档 我需要将这个特定的字符串数组转换为包含键值对的对象数组 以下是我目前的做法 id ObjectId 57e3720836e36f63695a2ef2 platform A1 available C
  • ElasticSearch 和 PHP 中的多个字段搜索

    我正在使用最新版本弹性搜索 PHP https github com elasticsearch elasticsearch php以及最新版本的 MongoDB 和 ElasticSearch 我需要对可以包含一个或多个值的多个字段进行搜
  • 致命错误 - 未找到“Mongo”类

    我正在尝试执行此操作 但我收到以下错误 致命错误 在 C wamp www 中找不到类 Mongo Info PHP 5 38 MongoDB mongodb win32 i386 2 0 2 MongoDB PHP 驱动程序 mongo

随机推荐

  • 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