2013-10-15 51 views
1

我想要一個通用的REST,它返回給定模式的所有記錄。不能從Mongoose文檔搜索修改對象

/* 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); 
    });  
    }); 

而對於賬戶,我不希望返回hashsalt,但如果它是隻讀Ø行爲。第二個console.log(o)仍然有salthash

幫助?

回答

3

Mongoose返回Document實例,它們不是普通對象。

所以,你需要首先轉換使用toObject

var documents = docs.map(function(doc) { 
    doc = doc.toObject(); 
    delete o.salt; 
    delete o.hash; 
    return doc; 
}); 

或者,你可以告訴find排除在結果hashsalt領域:

exposed[req.params.id].find({}, '-hash -salt', function(err, docs) { ... }); 
+0

你,先生,搖滾! – tomdemuyt