2017-12-28 2 views
0

두 개의 콜렉션이 있습니다. 하나는 사용자이고 다른 하나는 고양이입니다. 내 사용자 컬렉션에서 고양이 데이터를 원합니다. 그러나 나는 얻지 못하고있다.몽구스에 스키마 채우기

의 user.js

var Schema = mongoose.Schema; 
var userSchema = Schema({ 
_id: Schema.Types.ObjectId, 
username: String, 
email: { type: String, unique: true, lowercase: true, trim: true }, 
password: String, 
role: String, 
cats: [{ type: Schema.ObjectId, ref: 'Cat' }] 
}); 
var User = mongoose.model('User', userSchema); 
exports.default = User; 

Cat.js

var mongoose = require("mongoose"); 
var Schema = mongoose.Schema; 
var catSchema = Schema({ 
fname: String, 
mname: String, 
lname: String, 
}); 
var Cat = mongoose.model('Cat', catSchema); 
exports.default = Cat; 

O/P

"_id"ObjectId가 ("5a446ab43533970b8489e1ac") "이름"을 " xyz ", "이메일 ":"[email protected] ", "비밀번호 ""$ 2a $ 10 $ ogerY6OiCRKy9TjPYERaOugUJeqelBl .yToJ4ZBX3ac2MVZQpsKOu " "역할 ":"사용자 ", "고양이 ": [], "__v ": 0

예상 출력

"_id ": ObjectId가 ("5a446ab43533970b8489e1ac "), "사용자 이름": "XYZ" "이메일": "[email protected]" "비밀번호" "$의 2A $ $ 10 ogerY6OiCRKy9TjPYERaOugUJeqelBl.yToJ4ZBX3ac2MVZQpsKOu" "역할": "사용자", "고양이 ": [{ "_id ": ObjectId ("5a44707effc66a234447c36b "), "FNAME": "펠릭스" "MNAME": "", "LNAME": "", }], "__v": 0

답변

0

당신이 좋아하는 하나의 스키마로 결합 수 이하. 없음 배열 수가 지속적으로 수백 몇을 증가하지 않는 한 별도로 스키마를 생성 할 이유 ..

var Schema = mongoose.Schema; 
var userSchema = Schema({ 
    _id: Schema.Types.ObjectId, 
    username: String, 
    email: { type: String, unique: true, lowercase: true, trim: true }, 
    password: String, 
    role: String, 
    cats: [ 
    { 
     _id: Schema.Types.ObjectId, 
     fname: String, 
     mname: String, 
     lname: String, 
    } 
    ] 
}); 
var User = mongoose.model('User', userSchema); 
exports.default = User; 
+0

내가 10 명 + 컬렉션을 가지고 내가 원하는 위의 방법으로 복잡하게 만들 것이라고 생각합니다 – Chris

+0

나는 그것에 대해 요점을 찾았습니다. 아직 보지 못했다면 - https://gist.github.com/troyk/1892652 – efkan

관련 문제