让我说我有一个mongodb文档
{
"id" : 1,
"types" : ["online" ,"offline"],
"applications" : [ ["online", "online"], ["offline"] ]
}
我想变成
{
"id" : 1,
"types" : [
{
"type" : "online",
"count" : 2,
"applications" : [ "online", "online"]
},
{
"type" : "offline",
"count" : 1,
"applications" : [ "offline" ]
}
]
}
这里类型和应用程序数组可以是任意大小。
答案 0 :(得分:1)
您可以分两步进行操作,将$map与$filter结合使用,将type
与applications
进行匹配,然后运行$reduce来获得{{1} }:
count
您可以决定在建立过滤条件时使用$allElementsTrue还是$anyElementTrue更好。