使用mongoose转换文件数组

我正在运行一个特殊的查询,我想在其中转换结果。

User.find({}, function(err, users) { // I want to remove/add some properties from/to each user here }); 

有没有办法转换一个文件的数组? 此外,这是一个特殊的情况,所以我不想对Schema应用转换,我认为这将转换每个文档,但也会影响用户模型的所有其他查询。

基本上我希望能够对返回的文档数组执行一次性转换。

 User.find({}, function(err, users) { // I want to remove/add some properties to each user here users.toJSON({transform: function(doc,ret,options) { /* do tranform*/ }); // That will not work as I get an error that toJSON is not defined for that // array that was returned. }); 

我可以通过在查询之前添加一个转换来伪造它,然后在查询完成时删除这个转换,但是这是一个非常糟糕的黑客。

想法? 我错过了文档中的东西吗?

您可以使用lean查询,以便从查询中返回一个普通的JS对象数组,然后使用map来转换数组:

 User.find({}).lean().exec(err, users) { users = users.map(function(user) { // transform user into newuser as needed. ... return newuser; }); });