mongodb - 具有多个数组的 Mongo 聚合文档
问题描述
在 $match 和 $project 之后,我有这个文档结构:
{
"_id" : ObjectId("5a764de08337490ff57c7dc1"),
"Lote" : "id", --> Unique Index
"Planning" : [
{MainField:10, field1:value, field2:value},
{MainField:20,...},
{MainField:30...}
],
"Request" : [
{MainField:10, field1:value, field2:value},
{MainField:20,...},
{MainField:30...}],
]
}
计划和请求是数组。
我喜欢 $unwind 两个数组,然后只保留 Planning.MainField === Request.MainField 的文档
首先,我想到的解决方案是加入两个阵列,这是一个“长期”解决方案。
如果可能的话,我想玩聚合。
谢谢。
解决方案
您可以使用$expr
来匹配文档中的字段
db.collection.aggregate([
{ "$unwind": "$Planning" },
{ "$unwind": "$Request" },
{ "$match": { "$expr":
{ "$eq": ["$Planning.MainField", "$Request.MainField"] }
}}
])
推荐阅读
- android - 夜间模式颜色值不适用于回收站视图项目
- python - CSS 文件(main.css)中的图像不使用 Flask 加载
- python - PermissionError:[Errno 13] 权限被拒绝:pyinstaller.exe/zipcodes windows 10
- build - 什么是构建日志文件?
- r - 如何使小数出现在棒棒糖图上
- flutter - image_picker 仅在热重载后显示图像。扑
- ios - 配置 UIView 后如何更改 UIView 的约束?
- html - R-如何将 html 格式添加到适用于囊胚的表格中?
- git - Jenkins 从以前的版本构建
- listbox - 漏洞?ListBoxGroupHeader 和 Frame = 未找到类