MongoDB 将通过 $lookup 聚合运算符使用分片

2024-06-24

$lookup是 MongoDB 3.2 中的新增功能。它对同一数据库中的未分片集合执行左外联接,以从“联接”集合中过滤文档进行处理。

To use $lookup, the from集合不能被分片。

另一方面,分片是一种有用的水平扩展方法。

一起使用它们的最佳实践是什么?


正如您引用的文档所示,您不能使用$lookup在分片集合上。因此,最佳实践解决方法是在单独的查询中自行执行查找。

  1. 执行你的aggregate query.
  2. 将查询结果中的“localField”值拉入数组,可能使用Array#map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map.
  3. 执行一个find使用类似的查询对“from”集合进行查询{foreignField: {$in: localFieldArray}}
  4. 将您的结果合并为您需要的任何格式。

不要让$lookup限制阻止您对需要它以实现可扩展性的集合进行分片,只需自己执行查找功能即可。

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

MongoDB 将通过 $lookup 聚合运算符使用分片 的相关文章

  • 如何统计MONGODB中所有唯一值? [复制]

    这个问题在这里已经有答案了 date 2017 09 04 description DD from my employer1 amount 1000 33 date 2017 09 06 description DD from my emp
  • 是否可以将环境变量添加到 MongoDB 配置文件中?

    我正在使用 YAML 语法配置 MongoDB 副本集 但是 我想使用 MONGODB HOME 环境变量指向数据库 storage dbPath ENV MONGODB HOME data db 我尝试过使用 等 但没有成功 可以这样做吗
  • Ember-data和MongoDB,如何处理_id

    我正在将 ember data 与 Rails 和 MongoDB 一起使用 并且在 MongoDB 中的 id 字段中存储 ID 的方式遇到问题 Ember data 将使用 id 作为 ID 的默认字段 所以我尝试像这样覆盖它 App
  • MongoDB list集合过滤器

    我正在使用 Node js 我正在尝试过滤必须排除集合 出口 的集合并检索所有其他集合 但我似乎无法弄清楚语法 我试过了 db listCollections filter outlets toArray err docs 有什么建议么 您
  • 获取背景图片url值

    我正在尝试获取背景图像 url 的值 url 直接在元素标签中使用 style 属性内联设置 如下所示 a style background image none a 我尝试做 var url this css background ima
  • Symfony2 的 mongoDB 返回一个可记录游标而不是我的实体

    我目前使用 DoctrineMongoDbBundle 向我的 mongodb 数据库发出请求 这是我的控制器中的调用 dm this gt get doctrine odm mongodb document manager entitie
  • 合并两个 $or 语句

    我正在尝试执行一个由两个组成的查询 or s Date1 Date2 NULL NULL NULL TODAY NULL TOMRW TODAY TODAY TODAY NULL TOMRW NULL 我已经标记了与星号匹配的行 Date1
  • 如何使用官方 MongoDB C# 驱动程序将 BsonDocument 转换为强类型对象?

    出于单元测试的目的 我想测试我的类映射 而无需在 MongoDB 数据库中读取和写入文档 为了处理特殊情况 例如循环父 子引用和只读属性 我使用了BsoncClassMap RegisterClassMap lt MyType gt 一些自
  • 有没有办法限制特定集合中的记录数量

    假设我插入以下记录 例如 foo1 foo2 foo3 foo4 foo10 我希望该集合在任何时间点仅保留 5 条记录 例如 它可能是 foo1 foo5 或 foo2 foo6 或 foo6 foo10 我应该如何实现这个目标 听起来您
  • 使用 mongodb-reactive 的反应式 Spring boot 应用程序中的多租户

    我们如何使用 Mongodb reactive 存储库在 spring webflux 中创建多租户应用程序 我在网上找不到任何有关反应式应用程序的完整资源 所有可用资源均适用于非反应式应用程序 UPDATE 在非响应式应用程序中 我们过去
  • 如何避免 mongodb 聚合框架中的 $pushing null

    如果该字段不存在 push 会聚合空值 我想避免这种情况 有没有办法为 push 运算符创建子表达式 以便跳过空值而不将其推入结果数组中 聚会有点晚了 但是 我想做同样的事情 发现我可以用这样的表达式来完成它 Pushes events o
  • 使用 Pymongo 从 Windows 连接到 AWS 实例上的 MongoDB

    此行反复抛出错误 client MongoClient ec2 12 345 67 89 us east 2 compute amazonaws com 27017 ssl True ssl keyfile C mongo pem 由于显而
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • MongoDb 如何按月和年聚合

    我是 mongodb 新手 正在尝试学习 MongoDB 查询 id ObjectId 59815d4704ca1760a45957ca userEmail email protected cdn cgi l email protectio
  • 如何使用 Doctrine (DQL) 限制左连接的结果

    在 symfony 2 应用程序中 我有 2 个由一对多关系 用户和集合点 我正在尝试寻找我的用户实体并加入最后的约会对于找到的每个用户 这个想法是这样的 qb this gt createQueryBuilder p qb gt sele
  • 填充对象 ID 数组

    我的架构 var playlistSchema new Schema name type String require true videos type mongoose Schema Types ObjectId ref Video co
  • Mongoose Schema“新”关键字

    在声明猫鼬模式时 我注意到使用 mongoose Schema and new mongoose Schema work 有什么区别吗 哪种方式更好 这是同一件事 来自source https github com LearnBoost m
  • 使用 Flask 和 MongoEngine 跟踪 Tumblelog 应用程序时出错

    我正在关注 tumbleblog 应用程序here http docs mongodb org ecosystem tutorial write a tumblelog application with flask mongoengine
  • Mongodb $addToSet 嵌套对象

    我正在尝试更新嵌套在另一个哈希下的数组对象 IE name mike instagram id 3423 slug mike photos 现在我想使用 addToSet 附加到 instagram 照片对象 但我不知道如何操作 这可以将照
  • 使用 mongoDB 重命名集合

    我无法重命名 mongoDB 中的集合 我可以看到它存在并且可以从中写入和读取数据 我已尝试使用节点 mongo 本机驱动程序进行以下操作 db collection mycollection renameCollection mynewc

随机推荐

  • 使用 python 与 Popen 运行 shell 脚本在 python 命令行和实际程序中的行为不同

    我有一个 shell 脚本 我想从 python 程序调用它 但与以下代码根本不起作用 Popen 已导入 bf dir home wireless bf path os path join bf dir airdispatch sh sh
  • 如何隐藏 Neo4j 中节点之间不需要的关系

    我是 Neo4j 的新手 我有一个奇怪的要求 我有一些节点 CREATE a node title 1 CREATE b node title 2 CREATE c node title 3 CREATE d node title 4 以及
  • Selenium IDE 中的条件检查

    我想检查是否使用硒填充了可能的必填字段 我非常愿意使用 IDE 来完成此操作 而不是导出到代码 更具体地说 如果国家 地区下拉列表的值为 英国 我想确保填写邮政编码字段 如果下拉列表设置为其他任何内容 则邮政编码字段可以留空 如果共识是我必
  • 如何根据 Oracle 中的动态列表检查 IN 条件?

    编辑 更改标题以适合下面的代码 我试图从 Oracle 表中检索可接受值的列表 然后对另一个表执行 SELECT 同时将某些字段与所述列表进行比较 我试图用光标来做到这一点 如下所示 但是失败了 DECLARE TYPE gcur IS R
  • gcc可以针对不同CPU进行交叉编译吗?

    安装在 fedora 16 上的 gcc 是否可以针对不同的 CPU 比如 SPARC 进行交叉编译 我已经有了一定的认识 如有错误 还需要专家指正 不同的操作系统的不同之处在于它们用于访问内核的系统调用 或者完全在于它们使用的内核 它是否
  • 使用 argparse 和 python 接受字典作为参数[重复]

    这个问题在这里已经有答案了 我试图用 argparse 接受 type dict 的参数 但无论输入如何 它都会给出无效 dict 值的错误 usr bin env python import argparse MYDICT key val
  • 如何在 Azure 上的 MVC 应用程序中托管和嵌入视频?

    我创建了一个基本应用程序并上传到 Azure 我想嵌入视频 以便用户可以从列表中进行选择并查看每个视频 例如 选择一部电影并观看其预告片 我在 MVC 解决方案中创建了两个文件夹 Posters 包含用作每个视频背景的 jpg 文件 Vid
  • 具有 2 个队列的 Spring AMQP 项目

    我正在开发一个涉及 2 个队列和多个与它们交互的侦听器的项目 流动 新的 HTTP 请求到达服务器 然后将其转换为一个对象 该对象将成为消息 该消息必须在两个队列中发布 我有两种类型的侦听器 它们从每个队列获取消息 然后我做任何我想做的事情
  • 如何防止不同浏览器渲染字体不同?

    我在尝试在所有浏览器中保持一致的字体样式时遇到问题 如下所示 safari的字体渲染系统使字体粗细比chrome的字体粗细小 Safari Chrome 我尝试使用在其他问题上找到的解决方案 尽管他们没有解决这个问题 如何在所有主要浏览器中
  • 获取对组件树上某种类型的所有指令的引用

    我有一个复杂的场景 需要帮助 我有一个指令 称为TagDirective 它被放置在我的应用程序中的多个元素上 我有另一个指令 QueryDirective 需要引用的所有实例TagDirective存在于其宿主元素以及层次结构中其上方的所
  • 适用于 Windows 的 D-Bus 等效项

    有人知道 Windows 的 Linux D Bus 机制吗 Thanks 选择你的毒药 http msdn microsoft com en us library aa365574 28VS 85 29 aspx http msdn mi
  • Selenium IDE - 如何处理 java 脚本警报和确认

    我是自动化测试的新手 并开始使用 Selenium IDE 作为自动化的选择 我只是想知道是否有任何方法可以使用 IDE 处理 java 脚本警报 举一个场景 我单击 删除 按钮 出现一个带有 确定 和 取消 选项的 java 脚本警告框
  • 猜谜游戏 python 二分查找

    我无法弄清楚我的代码有什么问题 我试图让用户想到 1 到 100 之间的数字 然后这个程序就能猜到它 该程序将范围的高数和低数相加 然后除以二 并将其用作猜测值 如果程序猜测的数字大于用户的数字 则用户输入 1 如果小于 则输入 1 如果猜
  • HTTPS:Laravel 使用 .htaccess (public/)

    我试图在我的 Laravel 项目中包含 https 而不使用 godaddy 仅使用htaccess没什么大不了的 因为我正在使用proxypass来自我的 SSL 认证网站 该网站将传递到我的 laravel 项目 我只需要把我的 la
  • maven- assembly-plugin 不添加与系统范围的依赖关系

    这是我的 pom 文件
  • 合并具有一对一关系的表

    我有 3 个用于会员系统的 MySQL 表 users 成为用户的最低要求 仅与帐户信息相关 电子邮件 密码 is activated 等 user profiles 用户提供的个人信息 姓名 地址 电话 user member profi
  • 文本对齐:-webkit-center 与文本对齐:中心

    有谁知道为什么 text align center 和 text align webkit center 之间有区别 例如 如果您有 section h1 Title h1 div class image div h1 h1 section
  • 如何在servlet中获取表单参数? request.getAttribute 不起作用

    是否可以让同一个 servlet 执行验证 似乎在这里可能需要利用某种递归 但是当我在电子邮件框中输入内容并单击 提交 时 电子邮件参数仍然为空 单击 提交 后 URL 更改为 http localhost servlet EmailSer
  • 微服务:有哪些优点和缺点?

    与其他架构相比 使用微服务有哪些优点和缺点 何时应该使用微服务有经验法则吗 Pros 萨姆 纽曼在构建微服务 https rads stackoverflow com amzn click com 1491950358 列举了微服务的主要优
  • MongoDB 将通过 $lookup 聚合运算符使用分片

    lookup是 MongoDB 3 2 中的新增功能 它对同一数据库中的未分片集合执行左外联接 以从 联接 集合中过滤文档进行处理 To use lookup the from集合不能被分片 另一方面 分片是一种有用的水平扩展方法 一起使用