I got stuck at populating my array... this is what i get from my Terminal.find() function:
{ _id: 5a7300046f18140d5081be83, type: 5a71a22b0d4a2d0ec3b91edc, serial: '213', macAddress: 'E1:12:BE:82:12', barcode: '1243w464563', dateArrival: 2018-02-01T11:54:15.870Z, firmware: 5a71a2030d4a2d0ec3b91edb, installedAt: 5a61e547922c6d28e324d775, installedAtBranch: 5a7054713fe20c0c5a94fb11, __v: 0, deleted: false, activated: true } So i want to get the correct information, when a user searches for the terminal. This is why i have to use populate(). Difficult for me now is to populate things deeper inside the array. So the first Object type has a readMethod, a layout and interfaces - i have to populate those three, but i don't know how. This is aggravated by the fact that interfaces is an Object inside my Database. So my type looks like this: 
I think if someone can show me how to populate type with all of its interfaces i can achive the rest on my own.
Thanks in advance!
I found the answer on my own by searching deeper inside google:
Terminal.findOne({'barcode': barcode}) .populate({ path: 'type', populate: [{ path: 'user', model: 'User' }, { path: 'method', model: 'Method', }, { path: 'layout', model: 'Layout' }, { path: 'interfaces', model: 'Interface' }] }) .populate('firmware') .populate('customerId') .populate('branchId') .exec( function (err, terminal) { if (err) { res.status(500).send(err); } res.json({ terminal }); });