MongoDB クエリを作成し、結果のそれぞれに追加のフィールドを追加する必要があります。フィールド値は、別のクエリの結果に依存します。
コードでネストされたクエリを呼び出そうとしていserver.js
ます。res.json(data)
データ要素が変更される前に呼び出されるため、機能していません。forEach
コードでネストされたクエリを使用する (またはorのようなものを使用するaggregate
)ことを行う方法があると思いますdb.js
が、JavaScript/Mongo の経験が不足しているため、適切な解決策を見つけることができませんでした。
どんな助けでも大歓迎です。
サーバー.js
app.get("/get_users_list", function(req, res) {
db.getUsersByCity(req.query.city, function(err, data) {
if (err) {
res.send(err);
} else {
for(var i in data) {
var rec = data[i];
db.checkVisitation({'user_id': req.query.user_id, 'friend_id': rec.user_id},
function(inner_err, inner_data) {
if (inner_data) {
rec["visited"] = "true";
} else {
rec["visited"] = "false";
}
});
}
res.json(data);
}
});
});
db.js
var checkVisitation = function(visitJSON, callback) {
db.visitations.findOne(visitJSON, callback);
}
var getUsersByCity = function(city, callback) {
db.users.find({'city': city}).toArray(callback);
}
編集:
内部コールバック内にチェックを追加することで、問題を解決できました。
if (i == data.length - 1) {
res.json(data);
}