sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man hämtar distinkta nycklar inuti ett objekt i MongoDB

Du kan använda nya $objectToArrray i 3.4.4 version för att konvertera alla nyckel- och värdepar till dokumentmatriser följt av $unwind &$group med $addToSet för att få distinkta nycklar

db.collection.aggregate([{$project: {indexation: {$objectToArray: "$indexation"}}}, {$unwind:"$indexation"}, {$group:{_id:null, keys:{$addToSet:"$indexation.k"}}}])

För lägre version måste du uppdatera indexation att se ut som nedan och och använda

db.collection.distinct("indexation.k")

 { "_id" : ObjectId("58fb35531eb5df245d5d434f"), "name" : "d1.html", "indexation" : [{ "k" : "Citroen", "v" : 1 }, { "k" : "Marca", "v" : 1 }]}



  1. Hur mongoexporterar jag attribut från en mängd objekt till CSV?

  2. Mongoose skillnad mellan .save() och att använda update()

  3. Bästa sättet att lagra datum/tid i mongodb

  4. Infoga data i kapslad array i mongodb