【发布时间】:2015-02-08 12:45:53
【问题描述】:
在 MEAN 环境中使用 mongoose,我需要将数据添加到返回的 mongoose 查询结果中。该查询返回作者列表。我想在查询结果中为每个作者添加一个缩略图字段(=缩略图的计算路径)。这是我的代码(为简单起见,缺少循环代码):
var searchQuery = Author.find({ ...foo... });
searchQuery.limit(10);
//...
searchQuery.exec(function (err, authors) {
authors.set('thumbnail', 'test'); //causes error, no effect
res.json(authors);
});
我知道 mongoose 不会返回普通的 JS/JSON 对象,因此我需要先转换结果集才能对其进行操作。事实上,没有什么对我有用,我几乎尝试了所有方法:
searchQuery.lean().exec(function (err, authors) { //lean() option makes no difference
转换结果也不起作用,因为我不断收到“[...] has no method 'xy'”错误。
var tempresult = authors.toObject(); //--> causes error above
var tempresult = authors.toJSON(); //--> causes error above
我还漏掉了什么?
【问题讨论】:
-
你想用你的数据做什么?您是否尝试通过向其添加
thumbnail字段来修补每个作者? -
是的,这是我的意图。因此,我需要遍历结果(上面的示例中缺少循环代码)并将更改应用于作者的每个数据集。