MYSQL JSON - 如何访问由数字键索引的嵌套 JSON 对象?
MYSQL JSON - how do I access nested JSON object that's indexed by numerical key?
我正在尝试提取按数字键索引的 JSON 文档子树。
我的JSON字符串:
{
"pk": 20,
"tree": {
"100": {
"values": [
1, 2, 3
]
},
"abc" => 999
}
}
我的代码:
$session = mysql_xdevapi\getSession("mysqlx://root:letmein@localhost");
$schema = $session->getSchema('test');
$coll = $schema->getCollection('myColl');
$expr = mysql_xdevapi\Expression('$.tree.*');
$result = $coll->find('$.pk=20')->fields(['$.tree[100]'])->execute();
使用 '$.tree[100]'
结果是
[
'tree' => null
]
使用 '$.tree.*'
结果
[
'tree' => [
0 => [
1, 2, 3
],
1 => 999
]
]
使用 '$.tree.abc'
结果
[
'tree' => [
'abc' => 999
]
]
因此,'$.tree.abc'
有效,但 '$.tree[100]'
无效。
问题。如何使用“$.tree[100]”表达式访问 values
键?
谢谢!
感谢报告,以下案例:
$expr = mysql_xdevapi\Expression('$.tree."100"');
$result = $coll->find('$.pk=25')->fields($expr)->execute();
将在计划于 10 月 14 日发布的 mysql_xdevapi v8.0.18 中得到支持。
我正在尝试提取按数字键索引的 JSON 文档子树。
我的JSON字符串:
{
"pk": 20,
"tree": {
"100": {
"values": [
1, 2, 3
]
},
"abc" => 999
}
}
我的代码:
$session = mysql_xdevapi\getSession("mysqlx://root:letmein@localhost");
$schema = $session->getSchema('test');
$coll = $schema->getCollection('myColl');
$expr = mysql_xdevapi\Expression('$.tree.*');
$result = $coll->find('$.pk=20')->fields(['$.tree[100]'])->execute();
使用 '$.tree[100]'
结果是
[
'tree' => null
]
使用 '$.tree.*'
结果
[
'tree' => [
0 => [
1, 2, 3
],
1 => 999
]
]
使用 '$.tree.abc'
结果
[
'tree' => [
'abc' => 999
]
]
因此,'$.tree.abc'
有效,但 '$.tree[100]'
无效。
问题。如何使用“$.tree[100]”表达式访问 values
键?
谢谢!
感谢报告,以下案例:
$expr = mysql_xdevapi\Expression('$.tree."100"'); $result = $coll->find('$.pk=25')->fields($expr)->execute();
将在计划于 10 月 14 日发布的 mysql_xdevapi v8.0.18 中得到支持。