0
Mongoose에서 populate
메서드를 사용하여 컬렉션을 쿼리하고 싶습니다. 내 출력은 다음과 같이 될 것이다, 그래서 나는 Roles
컬렉션의 멤버 필드에 Member
문서를 채우는 어떻게Mongoose를 사용하여 형제 컬렉션의 필드를 채우는 방법은 무엇입니까?
{
"_id": "58da7bd6e7092e8735646ba0",
"name": "Unit Name",
"orgs": [
{
"name": "Org name",
"sortIndex": 0,
"_id": "58da7bd6e7092e8735646c2d",
"roles": [
{
"name": "Role Name",
"sortIndex": 0,
"member": "58dbd1e6c9a893a7840472ad"
}
]
}
],
"members": [
{
"name": {
"first": "First Name",
"last": "Last Name"
},
"_id": "58dbd1e6c9a893a7840472ad"
}
]
}
: 여기
var UnitSchema = new Schema({
name: {
type: String,
required: true
},
unitNumber: Number,
members: [MemberSchema],
orgs: [OrgSchema]
});
var MemberSchema = new mongoose.Schema({
name: {
first: String,
last: String
},
phone: String,
email: String
});
var OrgSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
sortIndex: Number,
roles: [RoleSchema]
});
var RoleSchema = new mongoose.Schema({
name: String,
sortIndex: Number,
member: {
type: Schema.Types.ObjectId,
ref: 'Member'
}
});
샘플 Unit
모음입니다 : 여기 내 스키마입니다
[
{
"name": "Org name",
"sortIndex": 0,
"_id": "58da7bd6e7092e8735646c2d",
"roles": [
{
"name": "Role Name",
"sortIndex": 0,
"member": {
"name": {
"first": "First Name",
"last": "Last Name"
},
"_id": "58dbd1e6c9a893a7840472ad"
}
}
]
}
]
쿼리 나는 생각했다한다
Unit.findOne({unitNumber: unitNumber}).populate('roles.callings.member').exec(...)