我正在创建一个虚拟JSON并尝试查询它。我是用JAVA做的。代码如下: -
private Molecules mol;
执行上面的代码时,我收到以下错误: -
import static com.couchbase.client.java.query.Select.select;
import static com.couchbase.client.java.query.dsl.Expression.s;
import static com.couchbase.client.java.query.dsl.Expression.x;
import com.couchbase.client.java.Bucket;
import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.document.JsonDocument;
import com.couchbase.client.java.document.json.JsonObject;
import com.couchbase.client.java.env.CouchbaseEnvironment;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import com.couchbase.client.java.query.Query;
import com.couchbase.client.java.query.Statement;
public class AccessData {
public static void main(String[] args) {
CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
.queryEnabled(true)
.build();
Cluster cluster = CouchbaseCluster.create(env, "127.0.0.1");
Bucket bucket = cluster.openBucket("default", "");
JsonObject testDataBlog = JsonObject.create().put("type", "blog").put("data", "blablabla");
JsonObject testDataComment = JsonObject.create().put("type", "comment").put("data", "ho hey");
bucket.upsert(JsonDocument.create("testDp4Blog", testDataBlog));
bucket.upsert(JsonDocument.create("testDp4Comment", testDataComment));
Statement statement = select("*").from("default").where(x("type").eq(s("blog")));
Query createIndex = Query.simple("CREATE PRIMARY INDEX ON default");
bucket.query(createIndex);
Statement withPlaceholders = select("*").from("default").where(x("type").eq(x("$1")));
}
}
任何解决问题的线索?
答案 0 :(得分:0)
看起来你正在使用相当过时的服务器版本和SDK以及开发人员预览版本!
我强烈建议您重新安装Couchbase Server 4.1.0,并在其最新版本2.2.7
中使用Java SDK。一些事情会发生变化:
queryEnabled(true)
Query
已重命名为N1qlQuery
您收到的错误表明当客户端尝试在localhost上连接时,没有任何答案(至少在端口11210上)。您能否在web console?
中检查节点是否正确再一次,更喜欢使用4.1.0安装Couchbase。如果您没有任何特定数据要保留在当前实例中,请执行完全重新安装(首先删除当前安装。请参阅here)。