mongooseを使用してmongoDBデータベースからレコードを配列に書き込もうとしています。私はレコードを記入しようとしています。私は関数の外側を宣言していても、関数の外側に空の配列を示しています。以下はコードです。mongooseを使用したNodeJで空の配列を返します
var saveMessageToVariable = function(){
var records = [];
var spark_ids = [];
var obj = new Object();
Message.find().distinct("spark_id").exec(function(err,data) {
data.forEach(function (id) {
if(id != null)
spark_ids.push(id);
});
// console.log(spark_ids.length);
spark_ids.forEach(function(spark_id){
Message.findOne({"spark_id":spark_id}).sort({"date":-1}).exec(function(err,data){
obj.spark_id = data.spark_id;
obj.meesage = data.message;
obj.date = data.date;
obj.message_id = data._id;
records.push(obj);
});
});
});
console.log(records);
}
これを実行すると、ログに空の配列が表示されます。この問題を解決するにはどうすればよいですか?