lundi 6 avril 2015

How to manipulate mongoose query result in exec callback

I am a newer in meanjs. Now I am stuck in how to manipulate the data queried from mongodb using mongoose. Here is my case:


Model schema is this:



var AdminUserSchema = new Schema({
firstName: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty, 'Please fill in your first name']
},
lastName: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty, 'Please fill in your last name']
},
displayName: {
type: String,
trim: true
},
email: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty, 'Please fill in your email'],
match: [/.+\@.+\..+/, 'Please fill a valid email address']
},
username: {
type: String,
unique: 'Username already exists',
required: 'Please fill in a username',
trim: true
},
password: {
type: String,
default: '',
validate: [validateLocalStrategyPassword, 'Password should be longer']
},
salt: {
type: String
},
provider: {
type: String,
required: 'Provider is required'
},
providerData: {},
additionalProvidersData: {},
roles: {
type: [{
type: String,
enum: ['user', 'admin']
}],
default: ['admin']
},
updated: {
type: Date
},
created: {
type: Date,
default: Date.now
},
/* For reset password */
resetPasswordToken: {
type: String
},
resetPasswordExpires: {
type: Date
},
enabled: {
type: Boolean,
default: true
}


});


When I try to get data and manipulate with following code:



var AdminUser = mongoose.model('AdminUser');
AdminUser.find().exec(function(err, users) {
if(err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {

users[1].password = undefined;
users[1].salt = undefined;
var created = moment(users[1].created).format('YYYY-MM-DD');
users[1].created = created;

console.log(created);
console.log(users[1].created);
console.log(users[1]);
}
});


The result shows as follow, it just doesn't work.


2015-04-07


Tue Apr 07 2015 12:00:00 GMT+1200 (NZST)


{ _id: 55233e0c488bd50b1eafe558, salt: undefined, displayName: 'test test', provider: 'local', username: 'test', __v: 0, enabled: true, created: Tue Apr 07 2015 12:00:00 GMT+1200 (NZST), roles: [ 'admin' ], password: undefined, email: 'test@test.com', lastName: 'test', firstName: 'test' }


I have tried to manipulate with like this: users[1]['created'] = created;


or using set function: users[1].set('created', created);


both failed. Please give a hand.


Any help would be appreciated.


Aucun commentaire:

Enregistrer un commentaire