sql >> データベース >  >> NoSQL >> MongoDB

CSVファイルからサーバー側のMeteorコレクションにデータをインポートする方法

    あなたはとても近かった。動作させるためにいくつかの変更を加える必要がありました。

    .csvファイルがどのようなものかわからないので、次のようなファイルを作成しました:

    A1, B1, C1, D1, E1, F1, G1, H1, I1
    A2, B2, C2, D2, E2, F2, G2, H2, I2
    

    file.split操作は行を分割していませんでしたが、すべてを1つの大きな行に入れていました。私はそれをこのように行い、それは機能しました:

    var lines = file.split(/\r\n|\n/);
    

    これにより、個々の行が配列のメンバーに分割されました。次に、入力をCSVと呼んでいるため、値はパイプではなくコンマで区切られていると仮定しました。だから私はあなたのline.splitをこれに変更しました

    var line_parts = line.split(',');
    

    私が行った他の変更は、あなたの失敗の原因ではないかもしれませんが、これは私が物事が通常行われていると思う方法です...

    このようにコレクションを宣言する代わりに

    Meteor.orders = new Meteor.Collection('Orders');
    

    私はこのようにしました

    Orders = new Mongo.Collection("orders");
    

    これはサーバーとクライアントの両方によって実行されることに注意してください。

    サーバーでメソッドを宣言する方法の代わりに、これをサーバーコードに入れます(Meteor.startではありません):

    Meteor.methods({
        upload : function(fileContent) {
            console.log("start insert");
            import_file_orders(fileContent);
            console.log("completed");
        }
    });
    

    そしてもちろん、import_file_orders関数の下部にある挿入行を変更しました

    var result = Orders.insert({Patient:pat_id, Exam_code:ex_key, Exam_name:ex_name, Clinical_info:clin_info, Order_info:order_info, Clinician_first:clinician_first_name, Clinician_last:clinician_last_name, Clinician_c_code:clinician_code, Clinician_riziv:clinician_riziv, Planned:null});
    console.log(Orders.findOne(result));
    

    質問の更新されたコードを編集する:

    import_file_orders関数をクライアントブロックからサーバーブロックに移動します。




    1. 最新の最も近い投稿を検索します。制限は20です。

    2. MongoDb C#でネストされたクラスList<>でLinqを使用することはできません

    3. MongoDB $ arrayElemAt

    4. MongoDBの原子性、分離、並行性