sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo recuperar claves distintas dentro de un objeto en MongoDB

Puede usar el nuevo $objectToArrray en 3.4.4 versión para convertir todos los pares de clave y valor en matrices de documentos seguido de $unwind &$group con $addToSet para obtener claves distintas

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

Para una versión inferior, debe actualizar indexation para verse como a continuación y usar

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

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