2017-04-01 6 views
0

MEANスタックでは、mongo dbから取得したレコードを配列に格納しようとしていますが、レコードを配列に格納できません。mongo dbから得られたレコードの配列プッシュ

これは私のコードです。私はprojectimageから取得したレコードをfulldetails []配列にプッシュしようとしていますが、失敗しました。配列

var express = require("express"), 
    router = express.Router(), 
    project = require("../../models/project.js"), 
    projectimage = require("../../models/projectimages.js"), 

      var details=data; 
       var fulldetails=[]; 

for (var i = 0; i < details.length; i++) { 
    var prjct_id=details[i]._id; 
    console.log('below'+i); 
    fulldetails.push(details[i]); 
    projectimage.findOne({projectId: prjct_id}, function(err, data){ 
     fulldetails.concat(data); 
        }); 
    console.log(fulldetails); 
     return false;  
} 
+0

あなたが属しているドキュメントに 'fullDetails'を設定し、ドキュメントに' save() 'を使ってデータベースに保存する必要があります。それが 'project'であれば、' project.fullDetails = fullDetails'や 'project.save()'のようなプロジェクト文書を 'find'してください。 – Veeram

+0

'fulldetails'配列のどこを確認していますか?つまり配列が空であるとはどういう意味ですか?残りのコードを分けてください。 –

+0

@Veeram、それは彼が私が考えていることではありません。彼はちょうど配列にデータをプッシュし、最後にそれを見たいと思う。おそらくすべての検索呼び出しが返される前に 'fullDetails'をチェックしています。 –

答えて

0

へのmongo DBのレコードを格納するために私に可能な解決策を提案する、私はあなたがしたいですが、私が間違っているなら、私を修正し、あなたのMongoのコレクションから配列を取得することが何であるかと思います。

また、Mongoクエリが正常に実行されたと仮定して、レコードを正しく返します。 toArray関数をコールバックで配列を取得する関数を使用することができます。

// let's say Furniture is your collection 
let furniture = Furniture.find({}); 
let details = []; 
furniture.toArray((err, array) => { 
    if (err) return; 
    details = array; // now details has your collections' documents 
}); 

より

thisが、これはあなたが探していたものでない場合は、私に教えてください参照してください。

0

あなたは完全な詳細のフラットな配列を取得しようとしていると思います。

var fulldetails=[]; 

for (var i = 0; i < details.length; i++) { 

    var prjct_id=details[i]._id; 

    projectimage.find({projectId: prjct_id}).toArray(function(err, data){ //convert data to array first 
     console.log(data); 
     fulldetails.concat(data); // concat data to fulldetails to get a flat array 
    }); 
} 
+0

私はそれを試みたが、データが挿入されていませんfulldetails配列に私は試したコードを投稿しました –

+0

検索クエリの直後に私のコードに示されているようにtoArray関数が欠けているのを見ました。返されるデータは、配列なしの配列ではないカーソル型なので、重要です。 –

関連する問題