Product Collection:
json
Copy code
{
"_id": ObjectId("..."),
"name": "Product Name",
"description": "Product Description",
"price": 19.99,
"category": "Electronics",
"inventory": 100,
"reviews": [
{
"userId": ObjectId("..."),
"username": "username",
"rating": 4,
"comment": "Great product!",
"date": ISODate("2023-01-01T12:00:00Z")
}
],
"createdAt": ISODate("2023-01-01T08:00:00Z"),
"updatedAt": ISODate("2023-01-01T08:30:00Z")
}
_id: Unique identifier for the product.
name: Name of the product.
description: Description of the product.
price: Price of the product.
category: Category to which the product belongs.
inventory: Quantity of the product available in stock.
reviews: Array of review documents, each containing information about the user, rating, comment, and date.
createdAt: Timestamp indicating when the product was created.
updatedAt: Timestamp indicating when the product was last updated.
2. User Collection:
json
Copy code
{
"_id": ObjectId("..."),
"username": "username",
"email": "user@example.com",
"password": "hashed_password",
"role": "customer",
"createdAt": ISODate("2023-01-01T10:00:00Z"),
"updatedAt": ISODate("2023-01-01T10:30:00Z")
}
_id: Unique identifier for the user.
username: Username of the user.
email: Email address of the user.
password: Hashed password of the user.
role: Role of the user (e.g., customer, admin).
createdAt: Timestamp indicating when the user was created.
updatedAt: Timestamp indicating when the user was last updated.
3. Reviews Collection (if separate from Products):
json
Copy code
{
"_id": ObjectId("..."),
"productId": ObjectId("..."),
"userId": ObjectId("..."),
"rating": 4,
"comment": "Great product!",
"date": ISODate("2023-01-01T12:00:00Z")
}
_id: Unique identifier for the review.
productId: Reference to the product being reviewed.
userId: Reference to the user who wrote the review.
rating: Rating given by the user.
comment: Comment provided by the user.
date: Timestamp indicating when the review was posted.
4. Order Collection:
json
Copy code
{
"_id": ObjectId("..."),
"userId": ObjectId("..."),
"products": [
{
"productId": ObjectId("..."),
"quantity": 2,
"price": 19.99
}
],
"totalPrice": 39.98,
"status": "pending",
"createdAt": ISODate("2023-01-02T14:00:00Z"),
"updatedAt": ISODate("2023-01-02T14:30:00Z")
}
_id: Unique identifier for the order.
userId: Reference to the user who placed the order.
products: Array of product items in the order, each containing productId, quantity, and price.
totalPrice: Total price of the order.
status: Status of the order (e.g., pending, shipped).
createdAt: Timestamp indicating when the order was created.
updatedAt: Timestamp indicating when the order was last updated.