次のスキーマがあります。
// ingredient
var ingredSchema = new Schema({
name: String,
cost: Number
});
// order
var orderSchema = new Schema({
cusName: String,
ingredients: [{type: Schema.Types.ObjectId, ref: 'Ingredient'}]
});
// create model
var Ingredient = mongoose.model('Ingredient', ingredSchema);
var Order = mongoose.model('Order', orderSchema);
私はすでにたくさんの食材をコレクションに保存しておりingredients
、ユーザーがハンバーガーの食材のセットを選択する UI を持っています。次に、次のようorders
に、同じデータベース内の別のコレクションにハンバーガーの注文を保存しようとします。burgers
// get order info from the form
var newOrder = new Order({ cusName: req.body.name,
ingredients: req.body.ingredients });
newOrder.save(function(err) {
if (err)
return console.log('Could not save your new order', err);
res.redirect('/order');
});
注文を保存するための呼び出しにより、次のエラーが生成されます。
{ message: Cast to ObjectId failed for value xxx at path 'ingredients',
name: 'CastError',
type: ObjectId,
value: xxx,
path: 'ingredients' }
私はマングースのバージョン 3.6.11 を使用しています。これをハックするのを手伝ってください。
PS: req.body.ingredients は、チェックボックスから構築された配列です。