Android Cloudant同步查询

Android Cloudant同步查询,android,cloudant,Android,Cloudant,正如文档所说,我试图在列表中进行查询 看: 返回: {codigo:4,公司:[ { id:b9f19d88-13c0-40e3-89de-63dc787afb4c, 姓名:1488949817178 }, { id:f17fb098-316e-4d33-a0f7-f5719bf9d62e, 姓名:1488949817178 }],雇员:[ { codigo:2891, id:cc54fa37-0b64-4108-869a-1303c6176ce5, 姓名:雇员0 79ed4 }, { codi

正如文档所说,我试图在列表中进行查询

看:

返回:

{codigo:4,公司:[ { id:b9f19d88-13c0-40e3-89de-63dc787afb4c, 姓名:1488949817178 }, { id:f17fb098-316e-4d33-a0f7-f5719bf9d62e, 姓名:1488949817178 }],雇员:[ { codigo:2891, id:cc54fa37-0b64-4108-869a-1303c6176ce5, 姓名:雇员0 79ed4 }, { codigo:4642, 识别号:19b76bbc-82c7-4295-a385-82ac2d892458, 姓名:员工1 e1102 }],id:ef2d0ebf-50b9-4cd0-9aaf-5389bccaaa56,nome:Random 4}

所以没关系

但这个查询不起作用:

query.put("employees.codigo",  2891);
首次返回:

QuerySqlTranslator:没有一个索引包含所有 [{employees.codigo={$eq=2891}}];为要查询的这些字段添加索引 有效地

创建索引后:

返回:抱怨索引

创建了另一个索引:

    i = q.createJsonIndex(Arrays.<FieldSort>asList(new FieldSort("employees.codigo"), new FieldSort("codigo")), null);
回答:没有

怎么了

如何按子级获取文档,以及如何仅获取子级

谢谢

我认为这是不受支持的,具体请参见突出显示的条目:

阵列

虚线表示法,用于索引或查询数组中的子文档。 正在查询精确的数组匹配,{field:[1,3,7]}。 使用点符号{field.0:1}查询以匹配特定数组元素。 使用$all进行查询。 使用$elemMatch进行查询。
Index i = q.createJsonIndex(Arrays.<FieldSort>asList(new FieldSort("employees.codigo")), null);
List<String> fields = Arrays.asList("codigo");
result = q.find(query, 0 , 0 , fields, null);
    query.put("codigo",4)
query.put("employees.codigo",  2891);
    i = q.createJsonIndex(Arrays.<FieldSort>asList(new FieldSort("employees.codigo"), new FieldSort("codigo")), null);