2016-07-03 6 views
0

mongodbにミリ秒の日付/時刻を数値として保存しようとしていて、mongoにdoubleとして表示され続けます。 decimalのない番号として保存するにはどうすればよいですか?MongoDB/MongooseはNumbersをDoublesとして保存しますか?

router.route('/reminders') 
    .post(function (req, res) { 
     var reminder = new Reminder(); 
     reminder.datetime = req.body.datetime;  

     console.log(typeof req.body.datetime) // gives the right datetime milliseconds 
     reminder.save(function (err) { 
      if (err) { 
       res.send(err); 
      } 
      res.json({message: 'Reminder Created!'}); 
     }) 
    }) 
+0

mongoにはどのような値がありますか、console.logからどのような値が得られますか? –

+0

あなたはこれを見たことがありますか?それを保存する前に日付の書式設定についてhttp://stackoverflow.com/questions/23512683/how-to-format-data-in-model-before-saving-in-mongoose-expressjs? –

+0

@GuySこれは興味深いですが、Dateとして保存したくないので、ミリ秒を数値として保存したいと思います。 – itamar

答えて

0

これまで見てきたように、Mongooseはデフォルトで倍数として大きな整数値を格納しています。代わりにそれらを64ビット整数として格納するには、mongoose-longプラグインを使用する必要があります。

var mongoose = require('mongoose'); 
require('mongoose-long')(mongoose); 
var SchemaTypes = mongoose.Schema.Types; 

var reminderSchema = new Schema({ 
    ... 
    datetime: SchemaTypes.Long 
}); 
関連する問題