mongoosJS更新嵌套日期值

时间:2018-02-01 07:11:17

标签: mongoose mongoose-schema

我在尝试设置日期时没有获得更新值

Schema看起来像这样

const CouponSchema = new Schema({
    coupon: {
        type: String
        ,required: true
    }
    ,type: {
        type: String
        ,required: true
    }
    ,user_id: {
        type: mongoose.Schema.ObjectId
        ,required: true
    }
    ,date: {
        issued: {
            type: Date
            ,default: Date.now
        }
        ,redeemed: {
            type: Date
            ,default: null
        }
    }
});

我试过这个

module.exports.redeem = function( id, callback ) {
    Coupon.findByIdAndUpdate( id, {
        $set: {
            "date.redeemed": Date.now
        }
    }, callback);
}

这个

module.exports.redeem = function( id, callback ) {
    Coupon.findByIdAndUpdate( id, {
        $set: {
            "date": {
                "redeemed": Date.now
            }
        }
    }, callback);
}

我没有错误,但日期永远不会填充。建议?

1 个答案:

答案 0 :(得分:0)

所以,您正在使用返回编号为Date.now()的{​​{1}}  如下所示:

timestamp

并且您将此传递给> Date.now() 1517473075986 类型字段,该字段仅采用日期对象, 以下命令返回Date Object。这可以被日期类型字段接受。

Date

示例:

> new Date()
2018-02-01T08:19:49.360Z

因此,{ issued: { type: Date, default: new Date() }, redeemed: { type: Date, default: new Date() } } 的内容可以传递Date.now(),这应该可行。 ;)