【问题标题】:How to define TYPES with Cassandra Consistencies?如何使用 Cassandra 一致性定义类型?
【发布时间】:2015-12-26 00:52:20
【问题描述】:

我有以下几点:

var cassandra = require('cassandra-driver');
var clientCass = new cassandra.Client({
    contactPoints: ['localhost'],
    keyspace: 'localhost'
});

在代码的底部,我正在这样做:

//Now add a row or Check to see if the session already exists
        var query = "INSERT INTO localhost.shirosessions     (id,expired,last_access_ts,start_ts) \n\
                VALUES ('" + theSession.sessionid + "',false,'" 
                + component.getTimeStampA() + "','" + component.getTimeStampA() + "') IF NOT EXISTS";


        //var params = [];
        var consistency = client.cql.types.consistencies.quorum;
        //client.executeAsPrepared(query, params, consistency, function (err) {
        clientCass.execute(query, consistency, function (err) {
            if (err)
                console.log('Something when wrong and the row was not Inserted', err);
            else {
                console.log('Inserted on the cluster! Yay!');
            }
        });

但是,我得到的错误是:

TypeError: Cannot read property 'types' of undefined

我不明白? TYPES 在哪里定义?怎么样?

我是 Cassandra 的新手,但自 90 年代后期以来我一直在使用 MSSQL Server,并且对 SQL 有清晰的了解。

如果你能帮忙,谢谢。

另外,输入“IF EXISTS”是确保唯一记录的唯一方法吗?

【问题讨论】:

    标签: node.js cassandra cql3


    【解决方案1】:

    我假设您使用的是 node.js 驱动程序。这是正确的吗?

    尝试使用:

    var consistency = cassandra.types.consistencies.quorum;
    

    我是 Cassandra 的新手,但自 90 年代后期以来我一直在使用 MSSQL Server,并且对 SQL 有清晰的了解。

    是的,我也是这样。我能提供的最好建议是不要让它影响你对 Cassandra 的理解。 几个从 SQL 中提取的 CQL 关键字的行为根本与它们的关系对应项不同。阅读文档并且什么都不做是很重要的。

    另外,输入“IF EXISTS”是确保唯一记录的唯一方法吗?

    不,Cassandra 中的所有主键都是唯一的。您需要了解的是,Cassandra 对待所有 INSERT 和 UPDATE 完全相同。它们通俗地称为“UPSERT”。

    通过执行 UPSERT,您是在告诉 Cassandra 获取您的列值并将它们存储为给定的键。如果这些键已经存在一行,那么现有的列值将被新的列值覆盖。当您使用 IF [NOT] EXISTS 时,您是在告诉 Cassandra 如果键值已经存在,则不要打扰 UPSERT。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-16
      • 2014-12-30
      • 2011-06-02
      • 2016-09-01
      • 2021-08-25
      • 2018-01-04
      • 2016-06-14
      • 1970-01-01
      相关资源
      最近更新 更多