sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB hledání vnořených polí pomocí $map

Můžete použít níže uvedený dotaz.

Pár věcí, které jsem změnil.

1. Ne $elemMatch je vyžadováno pro jednotlivá kritéria. Místo toho použijte tečkovou notaci.

2.Přesuňte $map podskupiny uvnitř skupiny $map operátor.

[
  {"$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. Mongo přestal po upgradu fungovat

  2. Aktualizační objekt MongoDb v poli při prvním výskytu od posledního

  3. Práce s klíči v redis

  4. Redis Managed Pub/Sub Server