基本上我问的问题与这个问题相同,但对于 Python Cassandra 库 PyCassa。
假设您有一个复合类型存储这样的数据:
[20120228:finalscore] = '31-17'
[20120228:halftimescore]= '17-17'
[20120221:finalscore] = '3-14'
[20120221:halftimescore]= '3-0'
[20120216:finalscore] = '54-0'
[20120216:halftimescore]= '42-0'
所以,我知道我可以通过执行以下操作轻松地根据复合类型的第一部分进行切片:
>>> cf.get('1234', column_start('20120216',), column_finish('20120221',))
OrderedDict([((u'20120216', u'finalscore'), u'54-0'),
((u'20120216', u'halftimescore'), u'42-0')])
但如果我只想要决赛成绩,我会假设我可以这样做:
>>> cf.get('1234', column_start('20120216', 'finalscore'),
column_finish('20120221', 'finalscore'))
要得到:
OrderedDict([((u'20120216', u'finalscore'), u'54-0')])
但相反,我得到:
OrderedDict([((u'20120216', u'finalscore'), u'54-0'),
((u'20120216', u'halftimescore'), u'42-0')])
与第一次通话相同。
难道我做错了什么?这应该工作吗?或者是否有一些使用 cf.get(... columns=[('20120216', 'finalscore')]) 的语法?我也试过了,但有例外。
根据http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1,我应该能够做这样的事情......
谢谢