mongoosejs populate code example

Example 1: mongoose populate filter

Story.
  find(...).
  populate({
    path: 'fans',
    // filtering field, you can use mongoDB syntax
    match: { age: { $gte: 21 } },
    // Explicitly exclude `_id`, see http://bit.ly/2aEfTdB
    select: 'name -_id'
  }).
  exec();

Example 2: mongoose create populate response

let user = await User.create({ ... })
user = await user.populate('company').execPopulate()

Example 3: mongodb populate document

Story.
  findOne({ title: 'Casino Royale' }).
  populate('author').
  exec(function (err, story) {
    if (err) return handleError(err);
    console.log('The author is %s', story.author.name);
    // prints "The author is Ian Fleming"
  });

Example 4: mongoos populate a ref

const storySchema = Schema({
  authors: [{ type: Schema.Types.ObjectId, ref: 'Person' }],
  title: String
});

// Later

const story = await Story.findOne({ title: 'Casino Royale' }).populate('authors');
story.authors; // `[]`