Cassandra - NodeJS - Проблема при получении значений типа карты

Я использую helenus в моем проекте node-js для получения/установки значений в cassandra. У меня есть поле MapType внутри моей таблицы, но когда я извлекаю значение из таблицы, я получаю пустое значение ключа.

Ниже приведена схема для моей таблицы.

CREATE TABLE datapoints (
 id uuid PRIMARY KEY,
 created_at timestamp,
 properties map<text,text>
);
</text,text>

Я вставил значения из cql используя запрос ниже

INSERT INTO datapoints (id, properties) VALUES (24053e20-63e9-11e3-8d81-0002a5d5c51b, { 'fruit' : 'apple', 'band' : 'Beatles' });

Ниже приведен код nodejs:

var helenus = require('/usr/local/lib/node_modules/helenus')
var pool = new helenus.ConnectionPool({
 hosts : ['localhost:9160'],
 keyspace : 'mykeyspace',
 timeout : 3000
 });
pool.connect(function(err, keyspace){
 if(err){
 console.log("connect me error")
 throw(err);
 } else {
 pool.cql("SELECT * FROM datapoints", [], function(err,results){
 console.log("results", results)
 results.forEach(function(row){
 props = row.get('properties').value;
 var id = row.get('id').value;
 console.log("properties", props);
 console.log("id", id);
 });
 })
 }
});

Строка console.log("properties", props); возвращает мне функцию, и когда я вызываю эту функцию, я получаю пустое значение ключа. Пожалуйста помоги.

1 ответ

Кажется, возникла проблема десериализации типов коллекций. Запрос на растяжение, сделанный в прошлом, разрушил десериализацию. Я только что нажал исправление до версии 0.6.8 которое должно позаботиться об этом.

licensed under cc by-sa 3.0 with attribution.