我正在尝试使用通用REST来返回给定模式的所有记录。
/* Read all entries for a given document type, TODO: limit this to a sensible amount of records, say 500 */
app.get( '/data/all/:id' , verifySession , function( req, res )
{
exposed[req.params.id].find( {} , function(err,docs)
{
if( docs && req.params.id == "Account" )
docs.forEach( function(o){ console.log(o); delete o.salt; delete o.hash; console.log(o); } );
res.json( err || docs );
});
});
对于Accounts,我不想返回hash
和salt
,但o的行为就好像它是只读的一样。第二个console.log(o)仍有salt
和hash
。
帮助?
答案 0 :(得分:3)
Mongoose返回文档实例,它们不是普通对象。
因此,您需要先使用toObject
转换它们:
var documents = docs.map( function(doc) {
doc = doc.toObject();
delete o.salt;
delete o.hash;
return doc;
});
或者,您可以告诉find
排除结果中的hash
和salt
字段:
exposed[req.params.id].find({}, '-hash -salt', function(err, docs) { ... });