2014-07-20 54 views
0

當在貓鼬的模式定義對象的數組,像這樣:如何定義對象的數組中貓鼬

var mySchema = new mongoose.Schema({ 
    stuff : [ Object ] 
}); 

當試圖挽救這個對象的實例,充滿了一些對象「東西」 ,Mongoose給出了以下錯誤:「Object#沒有方法'cast'」

在Mongoose中聲明一個對象數組的正確方法是什麼?

回答

1
var ObjectSchema = new mongoose.Schema({ 
    //your object schema 
}); 

var mySchema = new mongoose.Schema({ 
    stuff : [ ObjectSchema ] 
}); 
+0

感謝信息,但子對象從外部源快到了,我無法控制在其佈局上。它相當大,我不想爲它自己設計一個模式。我只想爲我的數據創建一個模式,並在其中包含這些外部對象的數組。 – user3690202

0

看它進一步,做的方法是是使用由貓鼬所提供的對象類型,因爲這會引起問題。取而代之的是將其定義爲一個數組:

var mySchema = new mongoose.Schema({ 
    stuff : [ ] 
}); 

這個工作,讓你把任何你想要的東西放入它,並將其正確保存。

0

像這樣的東西應該工作

var mySchema = new mongoose.Schema({ 
stuff1 :{type:String}, 
stuff2 :{type:Number}, 
array :[{arraystuff1:{type:String}}] 
}); 

這裏是一個鏈接,你可以找到關於它的 http://mongoosejs.com/docs/guide.html

+0

我不能接受我自己的答案,直到明天,但我已經想通了,並在下面看到更好的解決方案。基本上,你不需要任何「arraystuff1」的東西。只要有「數組:[]」就足夠了。 – user3690202