Wondering what’s next for npm?Check out our public roadmap! »

    mongoose-autopopulate
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/mongoose-autopopulate package

    0.13.0 • Public • Published

    mongoose-autopopulate

    Always populate() certain fields in your mongoose schemas

    Build Status Coverage Status

    Read the docs here.

    Note: This plugin will only work with mongoose >= 4.0. Do NOT use this plugin with mongoose 3.x. You have been warned.

    Note: population is a powerful feature, but it has limitations and helps you get away with poor schema design. In particular, it is usually bad MongoDB schema design to include arrays that grow without bound in your documents. Do not include a constantly-growing array of ObjectIds in your schema - your data will become unwieldy as the array grows and you will eventually hit the 16 MB document size limit. In general, think carefully when designing your schemas.

    Usage

    The mongoose-autopopulate module exposes a single function that you can pass to Mongoose schema's plugin() function.

    const schema = new mongoose.Schema({
      populatedField: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'ForeignModel',
        // The below option tells this plugin to always call `populate()` on
        // `populatedField`
        autopopulate: true
      }
    });
    schema.plugin(require('mongoose-autopopulate'));

    Only apply this plugin to top-level schemas. Don't apply this plugin to child schemas.

    // Don't do `nestedSchema.plugin(require('mongoose-autopopulate'))`.
    // You only need to add mongoose-autopopulate to top-level schemas.
    const nestedSchema = mongoose.Schema({
      child: { type: Number, ref: 'Child', autopopulate: true }
    });
    const topSchema = mongoose.Schema({ nested: nestedSchema });
    topSchema.plugin(require('mongoose-autopopulate'));

    Install

    npm i mongoose-autopopulate

    DownloadsWeekly Downloads

    13,017

    Version

    0.13.0

    License

    Apache 2.0

    Unpacked Size

    34.5 kB

    Total Files

    8

    Last publish

    Collaborators

    • avatar