我正在使用最新的cassandra版本,并尝试如下保存JSON并成功,

INSERT INTO mytable JSON '{"username": "myname", "country": "mycountry", "userid": "1"}'


以上查询保存记录如下,

"rows": [
        {
            "[json]": "{\"userid\": \"1\", \"country\": \"india\", \"username\": \"sai\"}"
        }
    ],
    "rowLength": 1,
    "columns": [
        {
            "name": "[json]",
            "type": {
                "code": 13,
                "type": null
            }
        }
    ]


现在,我想根据用户标识检索记录:

SELECT JSON * FROM mytable WHERE userid = fromJson("1") // but this query throws error


所有这些都发生在节点/表达应用程序中,并且我使用dse-driver作为客户端驱动程序。

最佳答案

CQL命令的工作方式如下所示,

SELECT JSON * FROM mytable WHERE userid =“ 1”;

但是,如果必须通过dse驱动程序执行该命令,则以下代码段可以正常工作,

let query = 'SELECT JSON * FROM mytable WHERE userid = ?';
client.execute(query, ["1"], { prepare: true });


客户在哪里

const dse    = require('dse-driver');
const client = new dse.Client({
              contactPoints: ['h1', 'h2'],
              authProvider: new dse.auth.DsePlainTextAuthProvider('username', 'pass')
});

10-04 17:17