24

当我执行如下.find操作时:

Collection.find({name: 'Erik'}, function (err, docs) {
   // do momething
});

'docs' 变量填充了一组功能齐全的猫鼬文档。但我需要得到一组纯 JSON 对象。

我知道我可以通过 forEach 循环遍历 'docs' 数组并使用 .toJSON() 方法获取对象。mongoose 是否支持该功能,我有兴趣吗?

4

3 回答 3

42

如果您使用的是 Mongoose 3.x,您可以使用lean查询选项来执行此操作:

Collection.find({name: 'Erik'}).lean().exec(function (err, docs) {
    // docs are plain javascript objects instead of model instances
});
于 2012-08-31T14:01:28.667 回答
8
.exec(function(err, docs){
    docs= docs.map(o => o.toObject());

这将包括virtualsgetter

于 2016-07-26T12:45:15.180 回答
0

Map through results and convert each to JS object:

const result = await model.find({some: 'query'});
return result.map((r) => r.toObject());
于 2021-04-07T06:53:37.740 回答