MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como recuperar chaves distintas dentro de um objeto no MongoDB


Você pode usar o novo $objectToArrray em 3.4.4 versão para converter todos os pares de chave e valor em arrays de documentos seguidos por $unwind &$group com $addToSet para obter chaves distintas
db.collection.aggregate([{$project: {indexation: {$objectToArray: "$indexation"}}}, {$unwind:"$indexation"}, {$group:{_id:null, keys:{$addToSet:"$indexation.k"}}}])

Para a versão inferior, você precisa atualizar a indexation para se parecer abaixo e e use

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