Späte Antwort, aber Sie können dies auch versuchen, wenn Sie Ihr Schema definieren.
schema.options.toJSON = {
transform: function(doc, ret, options) {
ret.id = ret._id;
delete ret._id;
delete ret.__v;
return ret;
}
};
Beachten Sie, dass dies ret
das JSON-Objekt ist und keine Instanz des Mungomodells. Sie arbeiten direkt an Objekt-Hashes ohne Getter / Setter.
Und dann:
Model
.findById(modelId)
.exec(function (dbErr, modelDoc){
if(dbErr) return handleErr(dbErr);
return res.send(modelDoc.toJSON(), 200);
});
Bearbeiten: Februar 2015
Da ich keine Lösung für die fehlenden toJSON- (oder toObject-) Methoden bereitgestellt habe, werde ich den Unterschied zwischen meinem Verwendungsbeispiel und dem Verwendungsbeispiel von OP erläutern.
OP:
UserModel
.find({})
.exec(function(err, users) {
var transformedUsers = users.map(function(user) {
return user.toJSON();
});
res.end(transformedUsers);
});
Mein Beispiel:
UserModel
.findById(someId)
.exec(function(err, user) {
if(err) return handleError(err);
if(null !== user) {
return res.end(user.toJSON());
}
});