sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB kapslad arraysökning med $map

Du kan använda nedanstående fråga.

Ett par saker har jag ändrat.

1.Ingen $elemMatch krävs för enskilda kriterier. Använd punktnotation istället.

2.Flytta undergruppens $map inuti gruppens $map operatör.

[
  {"$match":{
    "empId":"19107",
    "address.country":"AUS",
    "group.primaryGroup.primary":"Y",
    "group.subGroup.primarySubGroup.primary":"Y"
  }},
  {"$project":{
    "empId":1,
    "mobile":1,
    "address":{"$filter":{"input":"$address","as":"d","cond":{"$eq":["$$d.country","AUS"]}}},
    "group":{
      "$map":{
        "input":"$group",
        "as":"v",
        "in":{
          "groupId":"$$v.groupId",
          "primaryGroup":{"$filter":{"input":"$$v.primaryGroup","as":"vp","cond":{"$eq":["$$vp.primary","Y"]}}},
          "subGroup":{
            "$map":{
              "input":"$$v.subGroup",
              "as":"n",
              "in":{
                "subGroupId":"$$n.subGroupId",
                "primarySubGroup":{"$filter":{"input":"$$n.primarySubGroup","as":"mp","cond":{"$eq":["$$mp.primary","Y"]}}}
              }
            }
          }
        }
      }
    }
  }}
]



  1. Vad är skillnaden mellan safe:true och safe:false i samband med mongoskin? och hur använder man den?

  2. konstigt mongodb och mongoose error:inte master och slaveOk=falskt fel

  3. ServiceStack.Redis:Kan inte ansluta:sPort:50071

  4. Alternativ för Pymongo-marköriteration