gpt4 book ai didi

node.js - MongoJS同步调用

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:48 24 4
gpt4 key购买 nike

我正在修复一个项目中的一些错误。我需要同步游标,以循环加载数据。我有代码:

var mongo     = require('mongojs'),
dataMaps = [];

mongo.penguin_friends.find({ user_id_1: id_user }, function(err, friends) {
friends.forEach(function(data) {
var cursor = mongo.penguin_user_maps3.find({ user_id: data.id_user }, { fields: { maps: 1 } });
//I need to do dataMaps.push(cursor.data);

});

console.log("processingThisSomething()");

processSomething();
});

我需要在调用 processSomething() 之前完成此请求;所以我需要在循环内同步处理 mongodb 查询。

最佳答案

由于 API 不支持,因此无法使查询同步。

您必须向 .find() 提供回调或a cursor method接收结果:

cursor.toArray(function (err, maps) {
if (!err) {
dataMaps.push(maps);
}
});

但是,您可以将迭代器替换为异步感知的迭代器,例如 async.each() ,完成后继续:

async.each(
friends,

function (data, callback) {
var cursor = mongo....;

cursor.toArray(function (err, maps) {
if (!err) {
dataMaps.push(maps);
}

callback(err);
});
},

function (err) {
if (!err) {
processSomething();
}
}
);

关于node.js - MongoJS同步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com