Mongo 3.6 多条件聚合查找

2023-12-09

假设我有一个只有一个集合的 Mongodbdata。在这个集合中,我有以下文件:

{
    "type": "person",
    "value": {
        "id": 1,
        "name": "Person 1",
        "age": 10
    }
},
{
    "type": "person",
    "value": {
        "id": 2,
        "name": "Person 2",
        "age": 20
    }
},
{
    "type": "prescription",
    "value": {
        "drug": "Bromhexine",
        "patient": 2
    }
},
{
    "type": "prescription",
    "value": {
        "drug": "Aspirin",
        "patient": 1
    }
}

有了这些记录,我想在文档之间进行 JOIN"type": person and "type": prescription on value.id = value.patient.

我已经尝试过以下阶段的聚合:

{
    "$match": {
        "type": "person"
    }
},
{
    "$lookup": {
        "from": "data",
        "let": { "patient": "$value.id"},
        "pipeline": [
            {
                "$match": {
                    "$expr": {
                        "type": "prescription",
                        "value.patient": "$$patient"
                    }
                }
            }
        ],
        "as": "prescription"
    }
}

但它会产生错误FieldPath field names may not contain '.'。我相信这是由于"let": { "patient": "$value.id"},线。如果我尝试双美元符号($$)(如图所示here),结果是错误Use of undefined variable: value.

知道如何进行此聚合吗?


完成以下管道对象内的操作$lookup stage

"pipeline": [
                { "$match":
                    { "$expr":
                        { "$and":
                            [
                                { "$eq": [ "$type", "prescription" ] },
                                { "$eq": [ "$value.patient",  "$$patient" ] }
                            ]
                        }
                    }
                }
            ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongo 3.6 多条件聚合查找 的相关文章

随机推荐

  • Javascript 可以检测嵌入的 Youtube 视频何时结束吗?

    我有一个包含视频的 div div 的背景有一个假的 播放 按钮 我将其设计为用作播放按钮 而不是 Youtube 的标准视频 播放 按钮 视频最初设置为 display none 我部署了下面的代码 以便当您单击 div 时 div 消失
  • 蒙特卡洛圆周率计算可以用来创造世界纪录吗?

    我有这个随机函数来计算 pi蒙特卡罗风格 max 10000000 format long in 0 tic for k 1 max x rand y rand if sqrt x 2 y 2 lt 1 in in 1 end end to
  • 以编程方式更改 Windows 电源设置

    是否可以更改笔记本电脑合上盖子时的省电行为休眠 待机 关机 to 没做什么来自 NET 框架 Edit 看来 通过将值设置为 待机 并阻止我的应用程序的待机 可以检测到盖子关闭事件 这正是我真正想要的 I found 这个问题它涉及检测盖子
  • 重新启动自己 - 我可以从头开始重新初始化一切吗?

    我有这样的事情 public static final String path static path loadProperties config conf getProperty path public static void main
  • AnyLogic Attractor 奇怪的行为

    我的理解是 节点内的吸引子的容量应该为 1 从某种意义上说 在 3D 动画中 每个吸引子应该只有一个代理 当我运行模型时 我看到同一个吸引子上有两个代理形状 而其他吸引子是空的 这是正常行为吗 有没有办法防止这种情况发生 请注意 这种情况并
  • pgAdmin III 的错误行为?

    我在 pgAdmin 上进行查询时偶然发现了这种奇怪的行为 我已连接到运行 PostgreSQL 9 1 9 的服务器 我有一个名为 messages 的表 其定义如下 ghareh godot psql psql 9 1 9 Type h
  • 错误:“f”的类型与之前的“f”声明存在冲突

    这段代码只是我在实际代码中发现的一种情况 它非常大 所以我给出这个 在此代码中 结构 struct node 未定义 它是在另一个 c 源文件中定义的 我的c源代码 test c 1 include
  • 字节变量的 VBA 溢出错误

    有人可以解释一下为什么当操作的接收者时以下代码会在 VBA 中生成溢出错误c is an Integer Dim a As byte b As Byte Dim c As Integer a 3 b 100 c a b 或者这是否意味着涉及
  • 将整数转换为十六进制

    我只需要将整数转换为十六进制 实际上我有一个字符数组 在其中存储十六进制值 int var var self getValue char hexValues 5 hexValues 0 0x02 hexValues 1 0x04 hexVa
  • Heroku 应用程序和 mysql 的 config.php 代码出错

    我正在使用 Heroku for PHP 我查看了 Heroku 日志 发现 config php 代码中有错误 我正在为我的编码组合制作一个 Spotify 克隆 我使用 xampp apache mysql 成功制作了该组合 但现在我需
  • 在针对顺序运行进行优化的程序上使用 openMP 后没有性能提升

    我已经尽可能地优化了顺序运行的功能 当我使用 openMP 时 我发现性能没有提高 我在1核机器和8核机器上测试了我的程序 性能是一样的 将年份设置为 20 我有1 核 1 秒 8 核 1 秒 将年份设置为 25 我有1 核 40 秒 8
  • 将重复文本文件上传到 SQL Server 的最简单方法

    我有一个制表符分隔的日志文件 其中该日志文件中的新数据需要转储到 sql server 2008 数据库中 我想知道自动化此操作的最佳方法是什么 我可以在管理工作室内使用哪些服务来帮助我 如果你有SQL Server Integration
  • 创建信封时出现 ACCOUNT_LACKS_PERMISSIONS 错误

    我在创建信封时收到此错误 DocuSign eSign Client ApiException Error calling CreateEnvelope errorCode ACCOUNT LACKS PERMISSIONS message
  • HTML 中的 PHP 不起作用

    我只是想知道为什么这个 HTML 文件不显示任何内容 我在网络服务器上运行它 文件名是index php 我已经修复了 您应该确保提供以下信息 PHP 在您的服务器上 文件必须以 php 结尾 使用开放标签
  • 倾斜位图,RGB565 C# 的步幅计算

    我生成的图像有些是倾斜的 有些则不是 预期结果 529x22 实际结果 529x22 不要介意不同的图像尺寸 这些是屏幕截图 它们的尺寸均为 529x22 我正在使用的代码是我刚刚从 SO 的一个问题的答案中得到的 some other m
  • OWIN 上的 Application_PreSendRequestHeaders()

    我有一个不使用 OWIN 中间件的应用程序 并且具有以下内容Global asax public class MvcApplication HttpApplication protected void Application Start p
  • 从 Jenkins 外部调用 Jenkins 构建?

    我是 Jenkins 的新手 我不确定这是否可行 但我想设置一个 Web 界面 有人可以单击 开始作业 这将告诉 Jenkins 开始特定的构建作业 Jenkins 有支持这样的网络服务吗 如果是这样 一个简单的例子是什么 这是文档的链接
  • Ruby 已经在使用我的模型的类名

    我正在制作一个具有各种授权级别的论坛应用程序 其中之一是监视器 我通过扩展我的 User 类来做到这一点 并且我计划使用 ship 类 例如管理员身份 作者身份 主持人身份等 对其进行微调 显然 Monitor 类是 ruby 的一部分mi
  • 依赖 UIPickerView

    有谁知道如何制作依赖 UIPickerView 例如 当我选择组件一的第 2 行时 组件二的标题会发生变化吗 我在互联网上查看过 没有真正的答案 我尝试过使用 if 和 switch 语句 但它们只是崩溃了 这取决于您将如何保存数据 例如
  • Mongo 3.6 多条件聚合查找

    假设我有一个只有一个集合的 Mongodbdata 在这个集合中 我有以下文件 type person value id 1 name Person 1 age 10 type person value id 2 name Person 2