2014-09-24 95 views
18

我开始与猫鼬,我想知道如何做这种类型的配置:外键猫鼬

enter image description here

配方有不同的成分

我有我的两个型号:

成分和配方:

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

var IngredientSchema = new Schema({ 
    name: String 
}); 

module.exports = mongoose.model('Ingredient', IngredientSchema); 


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

var RecipeSchema = new Schema({ 
    name: String 
}); 

module.exports = mongoose.model('Recipe', RecipeSchema); 
+0

我猜你是问如何使用Ref操作符? – Tim 2014-09-24 04:29:56

回答

36

检查下面的代码更新,特别是这部分:{类型:Schema.Types.ObjectId,REF: '成分'}

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

var IngredientSchema = new Schema({ 
    name: String 
}); 

module.exports = mongoose.model('Ingredient', IngredientSchema); 


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

var RecipeSchema = new Schema({ 
    name: String, 
    ingredients:[ 
     {type: Schema.Types.ObjectId, ref: 'Ingredient'} 
    ] 
}); 

module.exports = mongoose.model('Recipe', RecipeSchema); 

拯救:

var r = new Recipe(); 

r.name = 'Blah'; 
r.ingredients.push('mongo id of ingredient'); 

r.save(); 
+0

我如何储蓄? (功能(req,res){ } var recipe = new Recipe(); recipe.name = req.body.name; recipe.save(function(err ){ 如果(ERR) res.send(ERR); res.json({消息: '配方创建'}); });} ) – devtest654987 2014-09-24 04:53:56

+0

您将需要单独保存成分,然后推入ID阵列。 – Tim 2014-09-24 05:00:13

+0

Thx我尝试了我的自我,它的工作 – devtest654987 2014-09-24 05:56:48