Mongodb mongoose节点js模式关系
Posted
技术标签:
【中文标题】Mongodb mongoose节点js模式关系【英文标题】:Mongodb mongoose node js schema relation 【发布时间】:2018-07-04 19:43:03 【问题描述】:你好,我是 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 的产品
如果你能帮助我,我真的很困惑,我真的很感激
【问题讨论】:
【参考方案1】:您可以将您的类别设置为:
category:
type: mongoose.Schema.Types.ObjectId,
ref: 'category' //your model name
如果您想要多个类别,可以将其包装成一个数组并将其命名为类别。
然后,当您获取数据时,您将不得不执行new Product().populate('category')
来获取类别数据,而不是仅返回类别 ObjectId。
【讨论】:
当我插入一个新产品时,我应该发送类别 ID 或类别型号吗? 我想发送类别 id 这种方式可以吗? 是的,你可以只发送 id ProductModel.find().populate('Categories').exec(function(err,data) res.send(Result: data) ) 我使用了这个方法但返回数据就像这样“city”:“”,“measureValue”:0,“photoUrl”:“”,“explanation”:“”,“isActive”:true,“createdDate”:“2018-01-25T14:45: 35.582Z”、“_id”:“5a69ed8f3151bd15b46920fc”、“名称”:“面包”、“minPrice”:4、“类别”:“5a69b854ca974d40ccc4b62d”、“__v”:0 它只返回类别 id 而不是类别模型以上是关于Mongodb mongoose节点js模式关系的主要内容,如果未能解决你的问题,请参考以下文章