Arian Shahalami
Arian Shahalami

Reputation: 1449

Best practice to store price changes over time in Mongodb

I'm using Nestjs and Mongoose as ODM. I have a model called Product which has the following properties:

Product Model

    @Schema({ timestamps: true, id:true, toJSON:{virtuals:true} })
    export class Product {
       @Prop({ required: true, type: String })
       title: string

       @Prop({ type: String })
       brand: string

       @Prop({ type: String })
       description: string


       @Prop({ type: Number})
       currentPrice: number

    }

every 4 hours product price will get updated. I'm wondering what's the best way to store product price history in MongoDB. in a SQL database like PostgreSQL, we make a ProductPrice table with (productId, price, date). But as MongoDB max document size is 16MB and thousands of products that I have& what is the best solution in MongoDB??

Upvotes: 1

Views: 457

Answers (1)

Heartbit
Heartbit

Reputation: 1836

This is not challenging for MongoDB feel free and just create a ProductHistory collection for that:

{
  id: ObjectId,
  product_id: ObjectId,
  created_at: Date,
  price: 99,
  currency: "$",
  expiration: 4,
  expired: false
}

Upvotes: 1

Related Questions