【发布时间】:2016-11-15 09:52:03
【问题描述】:
我有一个简单的问题,我在这里阅读了很多相同的问题,但这些问题并不完全相同或对我不起作用:-(
我有一个名为“addevent”的 REST 函数。该函数获取一个 json 输入 (req) 并遍历 json 数组以获取一些 ID 以将它们存储在一个额外的数组中。这完美!
之后,该函数应在 mongodb 中搜索每个 id 并存储来自该 ID 的一些额外信息(例如,该 ID 的存储 URL)。使用“console.log(result.link)”,它再次完美运行。但我的问题是,我需要将此链接存储在一个额外的数组(urlArray)中。
那么我如何保存collection.findone() 的结果。我读过一些关于 findone() 不返回文档,而是返回光标?这意味着什么?在我的情况下,我该如何处理?
代码如下:
exports.addevent = function(req, res) {
var ids = req.body;
var pArray = new Array();
var urlArray = new Array();
var eventName = ids.name;
for(var i in ids.photos) {
photoArray.push(ids.photos[i]);
var id = ids.photos[i]._id;
var collection = db.get().collection('photos');
collection.findOne({'_id':new mongo.ObjectID(id)},function(err, result) {
console.log(result.link);
}
)
}
非常感谢!
-------------------- 更新 --------------------
好的,我认为这与异步回调有关。我找到了一篇文章,但我不知道如何在我的情况下实现它。
http://tobyho.com/2011/11/02/callbacks-in-loops/
还有一些关于 javascript 中的“承诺”。
【问题讨论】:
标签: javascript json mongodb