2016-10-06 6 views
0

コレクションにUNIX形式で保存しようとしていますが、毎回ISO_8601形式で保存されています。 以下は私のコードです。一目瞭然で、どこが間違っているのか教えてください。MongoはUNIXの代わりにISO_8601形式の日付しか格納していません

var date = Date.now(); 

var comments = new Comments({ 
    item_id : req.params.item_id, 
    content : req.body.content, 
    created_at: date, 
    updated_at : "", 
    is_deleted : 0 
}); 

コメントスキーマ

var CommentsSchema = new Schema({ 
    content: {type: String}, 
    item_id: {type: Number}, 
    created_at: {type: Date, default: Date.now}, 
    updated_at: {type: Date, default: Date.now}, 
    is_deleted: Number 
}); 

しかし、私はISO_8601形式のコメントオブジェクト、その上映日のコンテンツをconsole.log()とき。私も同じようにしかし無駄にmoment jsを使用しようとしました。

+0

mongodbの 'created_at'タイプは何ですか? – abdulbarik

+0

待って、私も同様にスキーマを編集して外に –

答えて

1

ためdocumentを参照してください。

そうでなければ、Mongooseはデータベースからデータを読み込むときに、タイムスタンプを適切なDateインスタンスに自動的に変換します(ただし、タイムスタンプを抽出するにはdoc.created_at.getTime()を使用できます)。

1

マングースv4.xのは、このオプションでは、とtimestampedあるcreatedAtupdatedAtプロパティを追加し、スキーマ

var mySchema = new mongoose.Schema({key:keyType,}, {timestamps: true}); 

var CommentsSchema = new Schema({ 
    content: {type: String}, 
    item_id: {type: Number}, 
    is_deleted: Number 
},{timestamps: true}); 

への組み込みのオプションとしてタイムスタンプを持っていますa Date、これはあなたのためにすべての仕事をします。要求が文書を更新する更新、それはupdatedAtプロパティにデフォルトで

var thingSchema = new Schema({..}, { timestamps: { createdAt: 'created_at' } }); 
var Thing = mongoose.model('Thing', thingSchema); 
var thing = new Thing(); 
thing.save(); // `created_at` & `updatedAt` will be included 

を更新し、二つのフィールドの名前はcreatedAtとupdatedAt、タイムスタンプを設定することで、カスタムフィールド名です。 createdAtとtimestamps.updatedAtです。

は、データベース内のタイムスタンプを保存したい場合は、あなたがtype : Dateスキーマにtype : Numberを使用し、そしてべきではありません詳細

+0

その良いアプローチ、やっぱ! –

関連する問題