Cloudant客户端数据库 - startKey和endKey - Java

时间:2016-02-14 19:54:04

标签: java json eclipse maven cloudant

仅仅为了一些上下文,我编写了一个连接到Cloudant数据库的代码,并检索存储在数据库中的一些凭证,这些凭证是Json格式的(如您所料)。

我编写了允许我连接数据库的代码:

public ClientBuilder getCloudantClient(String username, String password) {
        ClientBuilder clientBuilder = ClientBuilder.account(username).
                username(username).password(password);
        return clientBuilder;
    }

然后返回数据库:

CloudantClient cloudantClient = cloudantRestClient.getCloudantClient(USERNAME, PASSWORD).build();
Database database = cloudantClient.database(DATABASE, false);

现在,我尝试从该数据库中检索某些凭据,例如某个ID,它只是一行,例如:

"id" : "Aberffrawcake"

对于我已经看过的这个example,我想指定startKey和endKey,在这种情况下,它将是" id",理想情况下,返回" Aberffrawcake"。

考虑到上面的例子,我有两个主要问题:

  1. .startKey(" id")。endKey(" id")参数实际返回了什么?根据{{​​3}},他们用指定的键返回开始和结束记录(但我不清楚这意味着什么)。它是Json结构吗?这是常规字符串吗?有人可以给我一个例子,说明如果给定一个指定的起始和结束键,返回的内容是什么?
  2. 我在eclipse中编写了一个Junit测试,当我提供.startKey(" id")。endKey(" id")参数时,它给了我一个空指针异常。我怎么能嘲笑这个(和Mochito一起)?如果问题1变得清晰,那么我就可以通过让他们返回我期望的东西来模拟startKey()。endKey()(但是因为我不知道他们实际返回了什么,我'我无法做到这一点)。
  3. 我将不胜感激,如果我的问题不清楚,请指出。

1 个答案:

答案 0 :(得分:1)

  

我想指定startKey和endKey,在这种情况下,   理想情况下,返回“Aberffrawcake”将是“id”。

startKeyendKey是您要过滤的的范围,因此在您的情况下,它将是“Aberffrawcake”而不是“id”。对于唯一值,key会更合适。