我知道在ref
中有很多关于embed
和mongoose schema
架构的讨论。我有点学习node
,我有RDBMs
的背景。我正在使用mongoose
。我有一个非常简单的场景,我已经实现了它。我遇到的问题是使用embed
或ref
。
方案
我的情景是,我有两个模型product
& categories
。 b / w的关系是many to many
。首先让我告诉你我的模特。
类别架构
const mongoose = require('mongoose');
//function to call monggose schema
const CategorySchema = mongoose.Schema({
category_name: {
type: String,
required: true
}
})
const Category = module.exports = mongoose.model('Category', CategorySchema);
产品架构
const mongoose = require('mongoose');
const ProductSchema = mongoose.Schema({
product_name: {
type: String,
required: true
},
product_rating: {
type: Number,
required: true
},
product_price: {
type: String,
required: true
},
product_btc: {
type: String,
required: true
},
product_mode: {
type: String,
required: true
},
product_date: {
type: String,
required: true
},
product_hasrate: {
type: String,
required: true
},
product_powerConsumption: {
type: String,
required: true
},
product_efficiency: {
type: String,
required: true
},
product_voltage: {
type: String,
required: true
},
product_frequency: {
type: String,
required: true
},
product_shipment: {
type: String,
required: true
},
product_warranty: {
type: String,
required: true
},
product_contact: {
type: String,
required: true
},
category: [mongoose.Schema.Types.Mixed]
})
const Product = module.exports = mongoose.model('Product', ProductSchema);
当我在angularjs
中制作前端时,我也很困惑。我在documents
表中有三个category
,我用邮递员填写。我从前端角度看事情。我将有一个类别下拉列表,用户应选择或多选择其产品的类别。
现在我如何在Product
架构中存储类别。他们现在正在存储,但我不是我正在做的事情。我想使用referencing
,但可能是我正在混合使用embed
和ref
。
我希望在我的搜索API中将所有产品整合到一个类别中,并希望获得我产品的所有类别。
我也在阅读mongoose docs,但我更加困惑。因为他们给出的例子与我上面描述的不相关。
var author = new Person({
_id: new mongoose.Types.ObjectId(),
name: 'Ian Fleming',
age: 50
});
author.save(function (err) {
if (err) return handleError(err);
var story1 = new Story({
title: 'Casino Royale',
author: author._id // assign the _id from the person
});
story1.save(function (err) {
if (err) return handleError(err);
// thats it!
});
});
如果我没有错,他们会同时关心创造这个人和故事。虽然我已经制作了类别。请善意解决这个问题。