Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Cassandra中的用户定义类型与nodejs一起使用_Javascript_Node.js_Cassandra - Fatal编程技术网

Javascript 将Cassandra中的用户定义类型与nodejs一起使用

Javascript 将Cassandra中的用户定义类型与nodejs一起使用,javascript,node.js,cassandra,Javascript,Node.js,Cassandra,我正在尝试将Cassandra中的用户定义类型与nodejs一起使用。 根据文档,我成功地在cqlsh()中完成了这项工作。我设法在cqlsh中插入项目,但没有使用cassandra驱动程序模块 我知道javascript()的使用有一些复杂之处,我也尝试过提供的不同选项,但我无法让它工作 以下是我的试用及其产生的错误消息: var insertQuery = 'INSERT INTO mykeyspace.users (id, name) VALUES (?, ?)' client.exec

我正在尝试将Cassandra中的用户定义类型与nodejs一起使用。 根据文档,我成功地在cqlsh()中完成了这项工作。我设法在cqlsh中插入项目,但没有使用
cassandra驱动程序
模块

我知道javascript()的使用有一些复杂之处,我也尝试过提供的不同选项,但我无法让它工作

以下是我的试用及其产生的错误消息:

var insertQuery = 'INSERT INTO mykeyspace.users (id, name) VALUES (?, ?)'

client.execute(insertQuery, ['62c36092-82a1-3a00-93r1-46196ee77204', { firstname: 'paul', lastname: 'jacques'}], {hints: ['uuid', 'map<text, text>']}, function(err) { console.log(err);})
那么让它工作的正确语法是什么


注意。我使用的是cassandra 2.1.1

DataStax Node.js驱动程序还不支持用户定义的类型,因此驱动程序将无法相应地序列化数据

您可以在CQL中使用json符号来访问各个字段。例如,类似以下的查询将起作用:

SELECT addr.street, addr.city FROM location WHERE id=?;


谢谢,那么存储嵌套json对象的首选方法是什么?我目前正在使用BLOB,但这使得查询缓冲列变得不可能,更新成本更高……冻结udt用于小对象,如果您可以使用我在回答中包含的json符号,您应该使用它(稍后您可以使用驱动程序级udt)。如果需要大型对象,可以使用多个柱,也可以使用其他柱族。
SELECT addr.street, addr.city FROM location WHERE id=?;
UPDATE SET addr['street'] = ?, addr['city'] = ? WHERE id = ?