Database

[{ "_id": ObjectId("5aca27b926974863ed9f01ab"), "name": "Z", "workers": [{ "name": "X Y", "worker_number": 655, "employed": false, "_id": ObjectId("5aca27bd26974863ed9f0425"), "tasks": [{ "_id": ObjectId("5ac9f6c2e1a668d6d39c1fd1"), "inbound_order_number": 3296, "task_number": 90, "minutes_elapsed": 120, "date": "2004-11-30", "start": 1101823200, "pieces_actual": 160, "pause_from": 1101812400, "pause_to": 1101814200 }] }] }]

Query

db.collection.aggregate([{ "$unwind": "$workers" }, { "$unwind": "$workers.tasks" }, { "$match": { "workers.tasks.start": { "$ne": null } } }, { "$sort": { "workers.tasks.start": 1 } }, { "$skip": 0 }, { "$limit": 10 }, { "$project": { "task_number": "$workers.tasks.task_number", "pieces_actual": "$workers.tasks.pieces_actual", "minutes_elapsed": "$workers.tasks.minutes_elapsed", "worker_number": "$workers.worker_number", "start": "$workers.tasks.start", "inbound_order_number": "$workers.tasks.inbound_order_number", "pause_from": "$workers.tasks.pause_from", "date": "$workers.tasks.date", "_id": "$workers.tasks._id", "pause_to": "$workers.tasks.pause_to" } } ])

Result