You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
641 B

  1. /*!
  2. * Module dependencies
  3. */
  4. var utils = require('./utils')
  5. /*!
  6. * Prepare a set of path options for query population.
  7. *
  8. * @param {Query} query
  9. * @param {Object} options
  10. * @return {Array}
  11. */
  12. exports.preparePopulationOptions = function preparePopulationOptions (query, options) {
  13. var pop = utils.object.vals(query.options.populate);
  14. // lean options should trickle through all queries
  15. if (options.lean) pop.forEach(makeLean);
  16. return pop;
  17. }
  18. /*!
  19. * Set each path query option to lean
  20. *
  21. * @param {Object} option
  22. */
  23. function makeLean (option) {
  24. option.options || (option.options = {});
  25. option.options.lean = true;
  26. }