title: How to use $arrayElemAt and remove fields from that element in MongoDB $projection?
body: <p>I have 'jobs' and 'users' collection. Every user can create a job for given 'jobCategoryId', that job is then saved in 'jobs' collection and contains 'userId' of it's creator and 'jobCategoryId'.</p>
  
  <p>I'm trying to combine these 2 collections so when I fetch jobs, I'll have 'user' field with all user data instead of 'userId' field for that job. This is how I'm doing it at the moment:</p>
  
  <pre><code>Job.aggregate([{
    $match: {
      jobCategoryId: mongoose.Types.ObjectId(jobCategoryId)
    }
  }, {
    $lookup: {
      from: 'users',
      localField: 'userId',
      foreignField: '_id',
      as: 'user'
    }
  }, {
    $project: {
      _id: 1,
      description: 1,
      title: 1,
      user: { $arrayElemAt: ['$user', 0] }
    }
  }, {
    $project: {
      _id: 1,
      title: 1,
      description: 1,
      'user.name': '$user.name'
    }
  }])
  </code></pre>
  
  <p>This returns following:</p>
  
  <pre><code>[{
    _id: 'some id',
    title: 'title',
    description: 'description',
    user: {
      name: 'Mike'
    }
  }]
  </code></pre>
  
  <p>result is correct but I'm really interested if there is any other way to keep only some fields from user object directly while using $arrayElemAt or am I doomed to use 2 projections in pipeline?
  Could anyone help me with this little problem? I'd really appreciate it.</p>