Bạn có thể sử dụng $ objectToArrray
mới trong 3.4.4
phiên bản để chuyển đổi tất cả cặp khóa &giá trị thành mảng tài liệu theo sau là $unwind
&$group
với $addToSet
để nhận các khóa riêng biệt
db.collection.aggregate([{$project: {indexation: {$objectToArray: "$indexation"}}}, {$unwind:"$indexation"}, {$group:{_id:null, keys:{$addToSet:"$indexation.k"}}}])
Đối với phiên bản thấp hơn, bạn phải cập nhật indexation
trông giống như bên dưới và sử dụng
db.collection.distinct("indexation.k")
{ "_id" : ObjectId("58fb35531eb5df245d5d434f"), "name" : "d1.html", "indexation" : [{ "k" : "Citroen", "v" : 1 }, { "k" : "Marca", "v" : 1 }]}