2

i want to fetch category and inventories of same category, i can fetch inventory and its category by using populate.. but i want revers of it.. but i dont know how.. i use populate function but it is not working

Inventory Model "use strict";

/**
 * Inventory
 * @description :: Model for storing Inventory records
 */

module.exports = {
  schema: true,
  autoPk:false,
  attributes: {
    // Fill your attributes here

    id: {
      type: 'string',
      primaryKey: true
    },
    name: {
      type: 'string'
    },
    brand: {
      type: 'string'
    },
    price: {
      type: 'float'
    },
    discount: {
      type: 'string'
    },
    description: {
      type: 'string'
    },
    business: {
      model: 'Business'
    },
    images: {
      type: 'array'
    },
    quantity: {
      type: 'integer',
      defaultsTo: 1
    },
    inStock: {
      type: 'boolean',
      defaultsTo: true
    },
    category: {
      model: 'Category'
    },

    categoryName: {
      type: 'string'
    },

    deviceId: {
      type: 'string'
    },

    localId: {
      type: 'string'
    },

    productId: {
      type: 'string'
    },

    costPrice: {
      type: 'float'
    },

    supplierName: {
      type: 'string'
    },

    notes: {
      type: 'array'
    },

    extra: {
      type: 'object'
    },

    reviews: {
      collection: 'Review',
      via: 'inventory'
    },

    views: {
      type: 'integer',
      defaultsTo: 0
    },

    lastSeen: {
      type: 'datetime',
      defaultsTo: null
    },

    toJSON() {
      return this.toObject();
    }
  },

  beforeUpdate: (values, next) => next(),
  beforeCreate: (values, next) => next()
};


and category model is

"use strict";

/**
 * Category
 * @description :: Model for storing Category records
 */

module.exports = {
  schema: true,
  attributes: {
    // Fill your attributes here
    id: {
      primaryKey: true,
      type: 'string'
    },
    name: {
      type: 'string'
    },
    business: {
      model: 'Business'
    },

    deviceId: {
      type: 'string'
    },

    localId: {
      type: 'string'
    },
    toJSON() {
      return this.toObject();
    }
  },

  beforeUpdate: (values, next) => next(),`enter code here`
  beforeCreate: (values, next) => next()
};

1 Answers1

2

For populate to work in the reverse order you need to create a "Many to Many Association" between Category and Inventory models. Refer to following to know how to do the same:

https://github.com/balderdashy/waterline-docs/blob/master/models/associations/many-to-many.md

adnan kamili
  • 8,967
  • 7
  • 65
  • 125