我是初學者。 我想用Mongoose創建一個這樣的資料模型:
{
"country": "西班牙"。
"產品": [
{
"產品": "product1": "product1".
"price": "5"
},
{
"產品": "product2": "product2".
"price": "8"/span>
}
]
}
我看過一些教程,但每一個教程都只創建了產品(而不是像我的那樣嵌套)。或者說這甚至是正確的策略嗎?或者說,創建這樣的東西是更好的解決方案嗎?
{
"country"。"西班牙"。
"產品": "product1",
"price": 10,
},
{
"國家": "西班牙",
"產品": "product2",
"price": 15,
},
{
"國家": "德國",
"產品": "product1",
"price": 12,
}
在這種情況下,我知道如何去做:
mongoose.model('Product'/span>, {
"country"/span>: { type: String, required: true }。
"產品": { 型別: String, required: true }。
"price": { type: Number, required: true }。
})
但是在第一種情況下,我不知道如何創建它。 總的來說,我的目的是能夠顯示按國家分組的產品。
uj5u.com熱心網友回復:
有幾種選擇。 首先,你可以使用subdocuments。 它們允許你在國家模式內定義產品。
import mongoose from 'mongoose'/span>;
const { Schema } = mongoose;
const countrySchema = new Schema({
products: [{ name: {type: String}, price: {type: Number}。}],
name: {type: String}.
});
export default mongoose.model('Country', countrySchema) 。
另一種方法是定義2個不同的模型,并在2個模型之間建立多對多的關系,這意味著一個國家可以 "擁有 "許多產品,一個產品可以屬于許多國家。這將允許你分別查詢國家和產品,但也可以看到一個國家擁有哪些產品,或者一個產品屬于哪些國家。 這個作業是這樣的。 你可以看到關于如何宣告和查詢這種模型這里
。
const productSchema = new Schema( {
name: {type: String}。
price: {type: Number}。
countries: [{type: mongoose.Schema. Types.ObjectId, ref。"Country"}] 。
})
const ProductModel = mongoose.model('Product', productSchema)。
const countrySchema = new Schema( {
products: [{type: mongoose.Schema. Types.ObjectId, ref。"Product" }]。
name: {type: String}.
});
const CountryModel = mongoose.model('Country', countrySchema)。
uj5u.com熱心網友回復:
我認為第二個策略是正確的 如果你想按國家對產品進行分組,你可以在聚合函式中使用$group,如果mongo或mongodb
。轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/319846.html
標籤:
