Я недавно начал использовать mongoose-deep-populatenpm пакет для вложенного заполнения в моем проекте. Мой проект предполагает, что я разрешаю только school Admin
вставлять данные учащихся для соответствующих школ, и я должен отображать детали school Admin
, которые вставляли данные со сведениями о студенте, которые он ввел.Mongoose.deepPopulate не работает должным образом
Моя students
схема выглядит следующим образом:
userId: {
type: Object,
ref: 'User'
},
ugId:{
type:Number
},
firstName:{
type:String,
required:true
},
lastName:{
type:String,
required:true
}
Здесь вы можете увидеть, что userId
имеет в виду модель называется User
которой схема выглядит следующим образом:
//More Fields
mappedUserDetails2: {
type: Schema.Types.ObjectId,
ref: 'Students'
},
UserGroupID: {
type: Object,
ref: 'UserGroups'
}
В User
схеме, UserGroupID
относится к UserGroups
Модель, схема которой выглядит следующим образом:
groupName: {
type: String,
required: true,
index: true,
unique: true
},
createdDate: {
type: Date,
default: Date.now
},
updatedDate: {
type: Date,
default: Date.now
},
uid: {
type: Number,
min: 1
},
mappedUserDetails3: {
type: Schema.Types.ObjectId,
ref: 'User'
}
Данные, которые я разместил следующим образом:
{
"userId":"55b7320173ceb5640e1b24a6",
"ugId":3,
"firstName":"AGGI",
"lastName":"AGGIqa"
}
Мой код, который выполняет deepPopulate
для userId
и userId.UserGroupID
для данного студента на students
модели, которая выглядит следующим образом:
Students.findOne({ _id: data._doc._id}).deepPopulate('userId', '-password').deepPopulate('userId.UserGroupID').exec(function (err, data) {
if (err) {
return res.json({
success: false,
exception: err
});
} else {
return res.json({
success: true,
userDetails: data
});
}
});
Когда я запускаю API на DHC, у меня не было вывода и с помощью инспектора узлов я обнаружил, что мой API разбивается на deepPopulate
. Может кто-нибудь указать, где я делаю ошибку, и что такое обходной путь?
Попробуйте изменить поля 'ref' на' type: Object' to be type: Schema.Types.ObjectId' вместо этого. – JohnnyHK
Привет, Джонни У вас есть идея why.deepPopulate ('userId', '-password'). DeepPopulate ('userId.UserGroupID') не работает? Я изменил поля полей ref: object to type: Schema.Types.ObjectId и все еще API был взломан? – shubhamagiwal92