2014-07-20 8 views
0

에서 객체의 배열을 정의하는 방법 :로 그래서 몽구스 스키마 객체의 배열을 정의 할 때 몽구스

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

일부 개체로 가득 차 '물건'으로,이 개체의 인스턴스를 저장하려고 몽구스는 다음과 같은 오류 메시지를 표시합니다. "개체 #에 '캐스트'메서드가 없습니다."

몽구스 개체 배열을 올바르게 선언하는 방법은 무엇입니까?

답변

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 : [ ] 
}); 

이 작업을 통해 원하는대로 넣고 올바르게 저장할 수 있습니다 이런 식으로 뭔가가 여기에

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

작동합니다

0
+0

나는 내일까지 내 대답을 받아 들일 수 없다. 그러나 나는 그것을 알아 냈고 더 나은 해결책을 위해 아래를 보았다. 기본적으로 "arraystuff1"을 필요로하지 않습니다. 그냥 "array : []"이면 충분합니다. – user3690202