簡體   English   中英

Mongodb mongoose節點js架構關系

[英]Mongodb mongoose node js schema relation

你好,我是 mongodb 和 node js 的新手,我有一個問題

這是我的產品架構

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const categorySchema = require('./category');

const ProductSchema = new Schema({
    country: {
        type: String,
        required: [true, "country can't be null"]
    },
    city: {
        type: String,
        default: ""
    },
    name: {
        type: String,
        required: [true, "name can't be null"]
    },
    measureValue: {
        type: Number,
        default: 0
    },
    minPrice: {
        type:Number,
        required: [true, "minPrice can't be null"],
        min: [1,"minPrice must be at least 1"]
    },
    maxPrice: {
        type:Number,
        required: [true, "maxPrice can't be null"],
        min: [1,"maxPrice must be at least 1"]
    },
    photoUrl: {
        type:String,
        default: ""
    },
    explanation: {
        type: String,
        default: ""
    },
    category: [categorySchema.schema],
    userID: {
        type: String,
        required: [true,"userid cant be null"]
    },
    isActive: {
        type: Boolean,
        default: true
    },
    createdDate: {
        type: Date,
        default: Date.now
    },
    deletedDate: {
        type:Date
    }
})

這是我的類別架構

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const CategorySchema = new Schema({
 name: {
        type: String,
        required: [true, "name can't be null"]
    },
    createdDate: {
        type: Date,
        default: Date.now
    },
    deletedDate: {
        type:Date
    }
})

我需要這樣做; 每個產品數據都必須有類別

如果有一天,一個類別的名稱發生了變化,那么與該類別相關的每個產品都必須更改

我正在嘗試將類別 id 設置為產品架構,當我獲取數據時,它必須是每個類別名稱為 json 的產品

如果你幫助我,我真的很困惑,我真的很感激

您可以將類別設置為:

category: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'category' //your model name
    }

如果需要多個類別,可以將其包裝到一個數組中並命名為類別。

然后,當您獲取數據時,您將必須執行new Product().populate('category')來檢索類別數據,而不僅僅是返回類別 ObjectId。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM