2016-08-19 6 views
0

I는 다음과 같습니다 모델이 있습니다몽구스 배열 내에서 문서를 저장하는 방법

의 user.js

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var memberSchema = new Schema({ 
     email: { 
      type: String, 
      required: true, 
      unique: true 
     }, 
     password: { 
      type: String, 
      required: true, 
      min: 8 
     } 
}); 

var userSchemaPrimary = new Schema({ 
    team_code : { 
     type: String, 
     required: true, 
     unique: true 
    }, 
    members:[memberSchema], 
}); 
var User = mongoose.model('User', userSchemaPrimary); 

module.exports = User; 

을 그리고 이것은

var User = require('../models/user'); 
var newTeam = new User({ 
    team_code : 'CODE01', 
    members: 
     { 
      email: req.body.email, 
      password: pass 
     } 
}); 

newTeam.save(function(err) { 
    if (err) throw err; 
    console.log('User saved successfully!'); 
    return res.send("Done"); 
}); 
을 저장하려고하는 방법이다

실행되면 모델 유효성 검사 오류가 발생합니다. 글쎄 배열 문서없이 데이터를 저장하려고 시도한 다음 성공적으로 저장합니다. 하지만 배열 (배열 "멤버")을 저장하려고하면 유효성 검사 오류가 발생합니다. 내가 잘못 무슨 일이 일어나고 있는지 이해 해달라고

{ 
    team_code: "CODE01", 
    members: [ 
     { 
     email: "[email protected]", 
     password: "11111111" 
     }, 
     { 
     email: "[email protected]", 
     password: "22222222" 
     } 
     { 
     email: "[email protected]", 
     password: "33333333" 
     } 
    ] 
} 

:

나는

TO 스토어의 다음과 같은 방법으로 데이터를합니다. 어떤 도움을 주셔서 감사합니다.

+0

는'스키마에 password' 필드는 문자열이지만,이 번호를 저장하는, 어쩌면 그게 문제 –

+0

나는 아니오 아니오는 단지 예제 배열입니다 주어진, 문자열을 절약 오전 –

답변

1

당신은 members 필드에 객체를 할당하는,하지만

var newTeam = new User({ 
    team_code : 'CODE01', 
    members: [{ 
      email: req.body.email, 
      password: pass 
    }] // <-- note the array braces [] 
}); 
+0

그럼 해결책은 뭐지? –

+0

assign [] not {} –

관련 문제