2016-07-09 2 views
0
내가 몽구스에 포함 된 문서 데이터 모델을 사용하고

에 몽구스에 포함 된 문서 데이터 모델을 표시하고 내 데이터는 내가 저장 한 다음 내가 그렇게 내 브라우저에 표시 할이브라우저

var firstuser1 = new user({userid: 'absj8d55', 
    tokenid: 'akn178i3', 
    media: [{mediaid: 'mid01',mediaurl: 'dl.ingrm.com/mid01'},{mediaid: 'mid03', mediaurl: 'dl.ingrm.com/mid03'}] 
}); 

같다 모든 I g을

var userschema = new mongoose.Schema({ 
userid: {type: String, unique: true}, 
tokenid: {type: String, sparse: true, default: null}},{ 
media: { 
mediaid: String, 
mediaurl: String 
} 
}); 
var user = mongoose.model('mydb', userschema); 

U이 코드를 실행하지만 :

app.get('/allmedia', function(req, res) { 
user.find({},function(err, myuser) { 
    res.send(myuser); 
    //console.log(myuser); 
})}); 

사용자가 여기 내 모델 :이 기능을 사용 등이있다 :

[{ "_id": "5780e1e5797fc3181865686b", "사용자 ID": "absd1234", "tokenid": "akdndkdn12345678"}

그것은 미디어를 표시하지 않습니다! !

어디에서 잘못 했습니까?

감사합니다.

+0

** 사용자는 여기 내 모델입니다. ** 어디에서? –

+0

@LazarevAlexandr 실수를 고쳐 주셔서 감사합니다. 편집 해 주셨습니다. 지금 정말로 도와 주시면 감사하겠습니다. –

+0

모델에서 미디어는 객체이지만 배열이 아닙니다. – Saleem

답변

1

userschema 생성자에서 media 개체를 두 번째 인수로 설정합니다. 스키마 생성자의 두 번째 인수는 options 개체입니다. 이 변경 :

var userschema = new mongoose.Schema({ 
    userid: {type: String, unique: true}, 
    tokenid: {type: String, sparse: true, default: null} 
},{ 
    media: { 
    mediaid: String, 
    mediaurl: String 
    } 
}) 

에 :

var userschema = new mongoose.Schema({ 
    userid: {type: String, unique: true}, 
    tokenid: {type: String, sparse: true, default: null}, 
    media: [{ 
    mediaid: String, 
    mediaurl: String 
    }] 
}) 

또한, @Saleem가 언급 한 바와 같이, 모델 media에하는 것은 객체가 아닌 배열입니다. 변경 스키마를 다음으로 변경하십시오.

var userschema = new mongoose.Schema({ 
    userid: {type: String, unique: true}, 
    tokenid: {type: String, sparse: true, default: null}, 
    media: [{ 
    mediaid: String, 
    mediaurl: String 
    }] 
}) 
+0

오 감사합니다, 내가 모든 개체를 변경할 때이 줄에 대한 오류가 발생합니다 :'media : {mediaid : 'mid01', mediaurl : 'dl.ingrm.com/mid01'},{mediaid :'mid03 ', mediaurl : 'dl.ingrm.com/mid03'} }'예상치 못한 토큰 '}'. 배열로 배열하면 미디어에 어떻게 도달 할 수 있습니까? 또는 미디어 시드? myuser.media didnt는 일한다!! –

+0

죄송합니다, 실수. 삽입하려는 객체가 아니라 배열로 스키마를 변경해야합니다. 내 대답에 그것을 고칠 것입니다. –