如何使用节点js在Cassandra中插入动态值以选择查询(对于日期范围)

时间:2015-03-23 12:46:56

标签: node.js cassandra cqlsh

var result ='选择来自people.users的消息,其中event_time> ?和event_time< ?允许过滤';

client.execute(result,[startdate,enddate], function(err,result)

这显示不起作用:

GET /favicon.ico 500 17.785 ms - 386
{ [ResponseError: Expected 8 or 0 byte long for date (10)]
  name: 'ResponseError',
  message: 'Expected 8 or 0 byte long for date (10)',
  info: 'Represents an error message from the server',
  code: 8704,
  query: 'select message from people.users where event_time > ? and event_time <
 ? allow filtering' }

1 个答案:

答案 0 :(得分:0)

Cassandra预期的类型(时间戳)与提供的值之间存在不匹配(看起来它不是Ecmascript Date)。

应该是这样的:

var startDate = new Date('2015-01-01');
var endDate = new Date();
var query = 'select message from people.users where event_time > ?' +
            ' and event_time < ? allow filtering';
client.execute(query, [startDate, endDate], { prepare: true}, callback);

另外,you should use the prepare flag for best performance and for accurate type mapping between Ecmascript and Cassandra