的一个节点我有这个JSON在我的数据库:PostgreSQL的 - NoSQL的查询思路选择JSON
{
"Id": 1,
"Questions": [
{
"QuestionId": 6,
"Description": "Question 1",
"Alternatives": [
{
"Index": 1,
"CorrectAnswer": false,
"AlternativeId": 26,
"QuestionId": 6,
"Description": "Alternative one",
"Selected": false
},
{
"Index": 2,
"CorrectAnswer": true,
"AlternativeId": 27,
"QuestionId": 6,
"Description": "Alternative two",
"Selected": false
}
]
},
{
"QuestionId": 7,
"Description": "Question 2",
"Alternatives": [
{
"Index": 1,
"CorrectAnswer": false,
"AlternativeId": 26,
"QuestionId": 6,
"Description": "Alternative one",
"Selected": false
},
{
"Index": 2,
"CorrectAnswer": true,
"AlternativeId": 27,
"QuestionId": 6,
"Description": "Alternative two",
"Selected": false
}
]
}
]
}
我不能得到这个文件只是一个问题。我试过以下查询:
select data#>'{Questions}' from db.my_table
where (data #> '{Questions,0,QuestionId}')::numeric = 6;
SELECT data ->> 'Questions' AS Questions FROM db.my_table
WHERE (data -> 'Questions' ->> 'QuestionId')::numeric = 6;
SELECT data ->> 'Questions' AS Questions FROM db.my_table
WHERE data -> 'Questions' ->> 'QuestionId' = '6'
我能做什么错?我总是得到0受影响的行的回报。
文档:
https://www.postgresql.org/docs/current/static/datatype-json.html https://www.postgresql.org/docs/current/static/functions-json.html
每一个帮助是值得欢迎!
嘿@jmelesky感谢您的回应!但我有以下错误: '错误:函数json_array_elements(jsonb)不存在 线1:从db.m选择json_array_elements(数据 - >'问题')... ^ 提示:没有函数匹配给定名称和参数类型。您可能需要添加显式类型转换。 **********错误**********'当我运行最后一个查询(笛卡尔)。我的专栏是jsonb ... – IgoR
如果您的专栏是jsonb,而不是json,那么您应该使用jsonb功能而不是json功能。正如[documentation](https://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE)所示,这意味着使用'jsonb_array_elements',而不是'json_array_elements '。将来,在你的问题中提供关于你的模式的更多信息将会有所帮助。 – jmelesky
!非常感谢你,现在的作品......我会提供一些有关我的模式的信息,以便你能看到一个可能的“最佳解决方案”。 :) – IgoR