如何获取json对象的数组而不是mongoose文档

时间:2012-08-31 07:37:45

标签: node.js mongodb express mongoose

当我找到如下操作时:

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

'docs'变量填充了一系列功能齐全的mongoose文档。但我需要获得一组纯JSON对象。

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

3 个答案:

答案 0 :(得分:34)

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

Collection.find({name: 'Erik'}).lean().exec(function (err, docs) {
    // docs are plain javascript objects instead of model instances
});

答案 1 :(得分:4)

valueAt(size()-1)

这将包括虚拟 getters

答案 2 :(得分:0)

映射结果并将每个结果转换为 JS 对象:

const result = await model.find({some: 'query'});
return result.map((r) => r.toObject());