Database

db={"Names":[{"_id":1,"name":"name1"},{"_id":2,"name":"name2"}],"Instances":[{"nameId":1,"value":1,"date":ISODate("2015-03-04T00:00:00.000Z")},{"nameId":1,"value":2,"date":ISODate("2015-04-01T00:00:00.000Z")},{"nameId":1,"value":3,"date":ISODate("2015-03-05T00:00:00.000Z")},{"nameId":2,"value":7,"date":ISODate("2015-03-04T00:00:00.000Z")},{"nameId":2,"value":8,"date":ISODate("2015-04-01T00:00:00.000Z")},{"nameId":2,"value":4,"date":ISODate("2015-03-05T00:00:00.000Z")}]}

Query

db.Names.aggregate([{"$lookup":{"from":"Instances","let":{"nameId":"$_id"},"pipeline":[{"$match":{"$expr":{"$eq":["$nameId","$$nameId"]}}},{"$sample":{"size":2}}],"as":"instances"}}])

Result