集合mongo DB之间的关系(填充)

时间:2018-04-23 13:23:40

标签: node.js angular mongodb express mongoose

我的数据库(Mongo DB)中有一个包含类别和膳食的集合

(mongo db - node js / express - angular)

我需要在它们之间建立关系,我在下面制作了这个模式:

// categories schema

const categSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: { type: String, require: true},
color: { type: String, require: false},
products: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Meal'}]
});

// Meal Schema

const mealSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: { type: String, require: true },
price: { type: Number, require: true },
code: { type: String, require: true },
details: { type: String, require: true },
color: { type: String, require: false },
count: { type: Number, require: true },
discount: { type: Number, require: true },
amount: { type: Number, require: true },
category: { type: mongoose.Schema.Types.ObjectId, ref: 'Categories'}
})
  • 当我获取类别数据时,我得到一个空产品,我也添加了与某些类别相同的_id

//这是一个添加一餐的表格

<form #f='ngForm' (ngSubmit)='creatData(f.value)'>
<div class="form-group">
<label for="name">meal name:</label>
<input type="text" #name class="form-control" placeholder="Category name" name="name" ngModel>
</div>

<div class="form-group">
<label for="name">meal code:</label>
<input type="number" #code class="form-control" placeholder="Category name" name="code" ngModel>
</div>

<div class="form-group">
<label for="name">meal price:</label>
<input type="number" min="0" value="10" #price class="form-control" placeholder="Category name" name="price" ngModel>
</div>

<div class="form-group">
<label for="name">meal amount:</label>
<input type="number" min="0" value="0" #amount class="form-control" placeholder="Category name" name="amount" ngModel>
</div>

<div class="form-group">
<label for="name">meal categories:</label>
<select class="custom-select form-control" name="category" ngModel id="inputGroupSelect01">
<option selected>Choose your category</option>
<option *ngFor="let c of categories" value="{{c.name}}">{{c.name}}</option>
</select>
</div>

<div class="form-group">
<label for="name">meal discount:</label>
<input type="number" min="0" value="0" #discount class="form-control" placeholder="Category name" name="discount" ngModel>
</div>

<div class="form-group">
<label for="name">meal details:</label>
<input type="text" #details class="form-control" placeholder="Category name" name="details" ngModel>
</div>
<div class="form-group">
<label for="name">meal color:</label>
<input type="color" #color class="form-control" name="color" ngModel>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

0 个答案:

没有答案
相关问题