kaydetme:Referans dokümanlar firavunfaresi
// 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);
Zaten bir koleksiyon ingredients
bir demet malzemeyi kaydedilir ve kullanıcılar kendi Burger maddeler kümesi seçin nerede bir UI sahibiz. Sonra bu gibi aynı veritabanında burgers
içinde başka bir koleksiyona orders
bir hamburger siparişi kaydetmeyi deneyin:
// 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');
});
çağrı bir emir aşağıdaki hata üretir kaydetmek için:
{ message: Cast to ObjectId failed for value xxx at path 'ingredients',
name: 'CastError',
type: ObjectId,
value: xxx,
path: 'ingredients' }
Ben mongoose kullanmak sürüm 3.6.11. Lütfen bunu kesmeme yardım et.
PS: req.body.ingredients, onay kutularından oluşturulan bir dizidir. Orada
ben 1. seçeneği koştu ve ekspres bir hata atar
, sonuç sonrası Lütfen 24 hex karakter dizesi. Hala başımı bu 'ObjectId' şeyinin etrafına sarmaya çalışıyorum. – gabeno
Eh, şimdi seçenek 2'yi işaretleyin. Geçerli 'ObjectId's geçmiyor olabilirsiniz. – gustavohenke
Anladın! Seçenek iki bunu çivi. Sorun, "ingred._id" yerine "req.body.ingredients" içinde "ingred.name" değerine sahip olduğumdu. Başların için teşekkürler. – gabeno