【问题标题】:How to use aggregrate in mongodb to $match _id (Compass)如何在 mongodb 中使用聚合来 $match _id (Compass)
【发布时间】:2021-07-24 17:30:45
【问题描述】:

我尝试在指南针中提出大的聚合请求。 我需要通过 ObjectIds 的比较来过滤数据

{
  _id: ObjectId("5fcc15d567184993fdfd8a24")
  organizationId: ObjectId("5dc3b48f8f69a100022ab8d8")
  relatedObject: {
    organizationId: ObjectId("5dc3b48f8f69a100022ab8d8")
    ...
  }
}

我需要获取organizationId = relatedObject.organizationId 的集合。简单

$match {
  organizationId: { $eq: "$order_history_items.organizationId" }
}

不起作用并且没有响应。我想是因为 ObjectIds 比较。如果没有 toHexString() 或指南针中没有的类似内容,我该怎么办?

【问题讨论】:

  • 使用$expr 操作符匹配内部字段。

标签: mongodb mongodb-compass


【解决方案1】:

答案:

{
  $expr: { $eq: ["$organizationId", "$order_history_items.organizationId"]}
}

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2015-05-25
    • 2013-04-21
    相关资源
    最近更新 更多