sql >> Database >  >> NoSQL >> MongoDB

Is het mogelijk om de MongoDB-resultaatquery af te vlakken?

U kunt $project . gebruiken &$unwind &$group van aggregatie kader om het resultaat dichter bij uw vereiste te krijgen.

> db.countries.aggregate({$project:{a:'$data.country.neighbor.name'}},
                         {$unwind:'$a'},
                         {$unwind:'$a'},
                         {$group:{_id:'a',res:{$addToSet:'$a'}}})
  {
    "result" : [
        {
            "_id" : "a",
            "res" : [
                "Colombia",
                "Malaysia",
                "Switzerland",
                "Costa Rica",
                "Austria"
            ]
        }
    ],
    "ok" : 1
}

$unwind twee keer gebruikt omdat de naammatrix diep genest is. En het werkt alleen als de neighbor attribuut is een array. In uw voorbeeld is één buurveld (Maleisië) geen array



  1. hoe een dataframe in mongodb op te slaan met pyspark?

  2. redis:back-up dump.rdb

  3. hoe deze transactiefout in mlab op te lossen? [MongoError:Transactienummers zijn ... ondersteunen vergrendeling op documentniveau]

  4. Waarom retourneert de Mongo Spark-connector verschillende en onjuiste aantallen voor een query?