У меня есть следующая модель в мангусте. projects
раздел: protected
.mongoose как проектировать защищенные поля при обновлении
var UserProjectSchema = new Schema({
user : ObjectId
, projects : {type : [ObjectId], select:false} //protected field
, projectCount : Number
});
Я хочу, чтобы protected
поля после обновления, так что я мог вернуть новый набор projects
.
UserProjectSchema.statics.addProject = function(userId, projectId) {
UserProject.findOneAndUpdate({
user:userId
},
{
$addToSet: {"projects" : projectId}
, $inc : {"projectCount" : 1}
},
{
upsert : true
//project : '+projects' it won't work
},
function(err, doc){
//doc.projects is undefined
// UserProject.findOne({user:userId},'+projects', function(err, doc){
// doc.projects is now available but this extra query ???
//})
});
}
var UserProject = mongoose.model('user_projects', UserProjectSchema);
Mongoose возвращает обновленный документ после успешного запроса, но ему не хватает, чтобы указать поля для проекта. Есть ли способ указать, какие поля следует проектировать после обновления в мангусте, чтобы я мог удалить дополнительный запрос?
OMG это было в документах? не могу поверить. большое спасибо. – Lekhnath
Добро пожаловать. Бывает. ;-) – BatScream