2016-09-09 4 views
0

MS SQLからMongoDBへのデータ移行を行っています。私はmongooseを使用しています。私のスキーマでは、timestampプロパティをtrueに設定しました。データ移行中にmongooseを使用してupdatedAtタイムスタンプを設定するには

次に、createdAtフィールドとupdatedAtフィールドの値を設定してみます。レコードを挿入するとき。 createdAtフィールドは正しく保存されますが、updatedAtフィールドはcreatedAtフィールドの値に設定されます。

これは標準的な動作ですか、何か間違っていますか?

+0

はどのようにあなたの記録を保存しているし、あなたのスキーマがどのように見えるか、あなたがここに投稿することができますか? – abdulbarik

+0

どのようにデータを移行していますか?あなたはそれを行うためにいくつかのライブラリを使用していますか? –

答えて

0

タイムスタンプオプションは、疑いもなく、本当にクールですが、私はまだそれを「古い学校」をやってる:

'use strict'; 
/** 
* Module dependencies 
*/ 
const mongoose = require('mongoose'); 


var DataSchema = new mongoose.Schema({ 
    name: { 
     type: String, 
     required: true, 
     lowercase: true 
    }, 
    created: { 
     type: Date, 
     default: Date.now 
    }, 
    updated: { 
     type: Date, 
     default: Date.now 
    } 
}); 

DataSchema.pre('save', function(next) { 
    this.updated = Date.now(); 
    return next(); 
}); 

mongoose.model('Data', DataSchema); 
+0

これは、updatedAtフィールドが設定されているかどうかを確認し、設定されていない場合は自動的に設定されるため、私にとってはうまくいくでしょう。 – RedJandal

関連する問題