MongoDB / Mongoose将数字保存为双打?

时间:2016-07-03 19:20:53

标签: node.js mongodb mongoose

我正在尝试将毫秒日期/时间保存为mongodb中的数字,并且它在mongo中一直显示为double。如何在没有decimal的情况下将其保存为数字?

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!'});
        })
    })

2 个答案:

答案 0 :(得分:0)

您可以使用验证或设置功能。验证可以在这里看到:http://mongoosejs.com/docs/validation.html您可以在其中指定正则表达式。如果要舍入小数,使用setter函数也会很好。看看这篇文章https://groups.google.com/forum/#!topic/mongoose-orm/f437FCPsVLY

答案 1 :(得分: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
});