如何定义嵌套在UDT中的Cassandra CollectionMap,并使用多朔';s的PHP客户端库?
我有一个如何定义嵌套在UDT中的Cassandra CollectionMap,并使用多朔';s的PHP客户端库?,php,collections,cassandra,Php,Collections,Cassandra,我有一个CollectionSet,其中UDT包含一个CollectionMap。在创建新的Cassandra\Type\CollectionSet以插入到表中时,我找不到任何文档或示例来说明如何定义它。有一个很好的例子是CollectionList(),它是这样的: // CollectionSet<UDT>, where UDT contains: Int, Text, Boolean, // CollectionList<Text>, CollectionList
CollectionSet
,其中UDT包含一个CollectionMap
。在创建新的Cassandra\Type\CollectionSet以插入到表中时,我找不到任何文档或示例来说明如何定义它。有一个很好的例子是CollectionList
(),它是这样的:
// CollectionSet<UDT>, where UDT contains: Int, Text, Boolean,
// CollectionList<Text>, CollectionList<UDT>
new Cassandra\Type\CollectionSet([
[
'id' => 1,
'name' => 'string',
'active' => true,
'friends' => ['string1', 'string2', 'string3'],
'drinks' => [['qty' => 5, 'brand' => 'Pepsi'], ['qty' => 3, 'brand' => 'Coke']]
],[
'id' => 2,
'name' => 'string',
'active' => false,
'friends' => ['string4', 'string5', 'string6'],
'drinks' => []
]
], [
[
'type' => Cassandra\Type\Base::UDT,
'definition' => [
'id' => Cassandra\Type\Base::INT,
'name' => Cassandra\Type\Base::VARCHAR,
'active' => Cassandra\Type\Base::BOOLEAN,
'friends' => [
'type' => Cassandra\Type\Base::COLLECTION_LIST,
'value' => Cassandra\Type\Base::VARCHAR
],
'drinks' => [
'type' => Cassandra\Type\Base::COLLECTION_LIST,
'value' => [
'type' => Cassandra\Type\Base::UDT,
'typeMap' => [
'qty' => Cassandra\Type\Base::INT,
'brand' => Cassandra\Type\Base::VARCHAR
]
]
]
]
]
]);
这导致错误捕获异常:从v0.7开始,集合类型应该有“definition”指令。
我也尝试使用“definition”而不是“value”。我的想法快用完了,任何帮助都将不胜感激。使用“定义”而不是“价值”。我以前试过这个,但很明显我做错了别的事情,因为它起作用了
new Cassandra\Type\CollectionSet($udt_array, [[
'type'=>Cassandra\Type\Base::UDT,
'definition' => [
'map_name' => [
'type' => Cassandra\Type\Base::COLLECTION_MAP,
'definition' => [
Cassandra\Type\Base::INT,
Cassandra\Type\Base::BOOLEAN
]
]
]
]])
使用“定义”而不是“值”。我以前试过这个,但很明显我做错了别的事情,因为它起作用了
new Cassandra\Type\CollectionSet($udt_array, [[
'type'=>Cassandra\Type\Base::UDT,
'definition' => [
'map_name' => [
'type' => Cassandra\Type\Base::COLLECTION_MAP,
'definition' => [
Cassandra\Type\Base::INT,
Cassandra\Type\Base::BOOLEAN
]
]
]
]])