我已将文档保存在cloudant DB中,格式如下。我想检索JSON对象,其值为KEY =" Test1"。以下是保存文档结构。
{
"_id": "SOCIALKEYWORD",
"_rev": "3-5b46ffc64d05858e15f443b1115d97be",
"KEYWORD": [
{
"KEY": "Test1",
"SITEID": 1,
"STATUS": "A"
},
{
"KEY": "@IdeaCellular",
"SITEID": 1,
"STATUS": "A"
},
{
"KEY": "@idea_cares",
"SITEID": 1,
"STATUS": "A"
}
]
}
我在KEY&创建了索引KEYWORD分别为JSON类型 我写了下面的查询,但没有结果。
{
"selector": {
"_id" : "SOCIALKEYWORD"
},
"include_fields": [
"KEY",
"SITEID",
"STATUS"
]
}
请告诉我正确的查询
答案 0 :(得分:0)
您能澄清一下您对查询结果的期望吗?我看到你所概述的两个直接问题。第一个问题是,如果您要像在查询中一样只查询KEY
字段,则无需在KEYWORD
或_id
字段上创建索引示例(_id
字段上有一个特殊索引)。拥有这两个额外的索引不会导致任何问题,但它会创建两个不必要的索引。第二个问题是,在您的查询中,您必须指明要返回的顶级字段。请尝试此查询:
{
"selector": {
"_id" : "SOCIALKEYWORD"
},
"fields": [
"KEYWORD"
]
}
此查询应该会给您以下结果:
{
"KEYWORD": [
{
"KEY": "Test1",
"SITEID": 1,
"STATUS": "A"
},
{
"KEY": "@IdeaCellular",
"SITEID": 1,
"STATUS": "A"
},
{
"KEY": "@idea_cares",
"SITEID": 1,
"STATUS": "A"
}
]
}
如果您尝试查询KEY
(嵌套在KEYWORD
中),那么您将需要在KEYWORD.KEY
上创建索引并查询相同的内容。