Javascript 如何更新密钥为时间戳类型的cassandra中的集合

Javascript 如何更新密钥为时间戳类型的cassandra中的集合,javascript,node.js,cassandra,nosql,Javascript,Node.js,Cassandra,Nosql,我正在尝试更新“映射”列,但尝试更新会导致错误: 错误: error: database errorTypeError: Not a valid bigint, expected Long/Number/Buffer, obtained '2014-12-07T13:53:10.658Z' 尝试 var query_attendance = 'UPDATE emp_attendance SET attendace = attendace + ? where year = ? and month

我正在尝试更新“映射”列,但尝试更新会导致错误:

错误:

error: database errorTypeError: Not a valid bigint, expected Long/Number/Buffer, obtained '2014-12-07T13:53:10.658Z'
尝试

var query_attendance = 'UPDATE emp_attendance SET attendace = attendace + ? where year = ? and month = ? and emp_id = ?';
var udpateAttendance = function(empId, timestampMillis, cb){
    var foundDate = new Date(timestampMillis);
    var year = foundDate.getUTCFullYear();
    var month = foundDate.getUTCMonth();
    var date = foundDate.getUTCDate();
    var attendace = {};
    attendace['2014-12-07T13:53:10.658Z'] = 'Present';
//  winston.info('attendace' + JSON.stringify(foundDate));
    var values = [attendace, year, month, empId];
    var options = {
        hints: ['map','int','int','int'],
        prepare: true
    };
    winston.info('Values: ' + JSON.stringify(values));
    client.execute(query_attendance, values, options, function(err, resultSet){
        winston.info('Query Completed');
        if(err){
            winston.error('database error' + err);
            cb(err, null);
            return;         
        }
        winston.info('Query successful');
        cb(null, resultSet);
    });
}
我的观点:

error: database errorTypeError: Not a valid bigint, expected Long/Number/Buffer, obtained '2014-12-07T13:53:10.658Z'

我想我需要告诉驱动程序map collection中的键的类型是timestamp类型,但我找不到如何为驱动程序指定这样的输入。

在对cassandra驱动程序库进行大量调试后,我最终发现了错误所在

当“cassandra driver”中的“encoder.js”接收到日期类型的输入时,“encodeTimestamp()”使用“instanceof”关键字检查类型。 这就是我的错误导致错误的地方,因为

attendace[foundDate]
or 
attendace['2014-12-07T13:53:10.658Z']
可能正在制作“字符串”类型的键(作为js新手,无法确认)。 所以,问题的解决方案是,
我需要将date对象作为attendace变量的键传递

注意:

虽然,我仍然无法将日期作为另一个对象的键传递给另一个对象,但这是完全不同的问题。 为了继续运行这个流(直到我找到了将日期作为对象传递的方法),我在cassandra驱动程序中的“encoder.js”的“encodeTimestamp()”中做了一个小改动。 改变


这只是黑客行为
,所以我希望一定会有真正的解决方案,有人会想出办法,

这是不可能的,我已经创建了一个,我对问题的解决方案是否正确,或者它将影响API中的其他查询或流程解决方案是否正确,并且不应影响应用程序的其他部分。