これは、集約フレームワークを使用して行うことができます。
db.repository.aggregate([
{ "$match": {
"datetime_int": { "$gte": 1451952000 },
"software.adobe.licenses.key" : { "$exists" : true }
}},
{ "$project": {
"hash": 1,
"key": {
"$map": {
"input": "$software.adobe.licenses",
"as": "soft",
"in": "$$soft.key"
}
}
}}
])
MongoDB 3.2以降、サブドキュメント配列フィールドを直接投影できます。
{ "$project": { "hash": 1, "key": "$software.adobe.licenses.key"}}