首页 > 解决方案 > 存储桶中存在键,但 api 为少数键返回“键不能为空或为空”

问题描述

我正在使用 Couchbase.NET 客户端 2.4.8.1 从存储桶中检索文档。我们有 4 个数据和查询节点以及 2 个索引节点。

IDocumentResult<T> document = _bucket.GetDocument<T>(key);

对于某些密钥,我们能够获取数据,但对于少数密钥,即使它存在于存储桶中,我们也能够从工作台获取它,api 返回“密钥不能为空或为空”。响应状态为“ClientFailure”。请帮忙

代码片段 -

            var config = new ClientConfiguration
            {
                Servers = new List<Uri> {
                   new Uri("http://xxx.xxx.xxx.xx:8091")

               }
            };

            //create the cluster and pass in the RBAC user
            var cluster = new Cluster(config);
            var credentials = new PasswordAuthenticator("xxx_yyy", "*****");
            cluster.Authenticate(credentials);

            //open the new bucket
            var bucket = cluster.OpenBucket("xxx_yyy", "*****");

            var airportPOI = bucket.GetDocument<dynamic>("Travel::A23::A24");
            Console.Write(airportPOI);


            var queryRequest = new QueryRequest()
                            .Statement("select * from xxx_yyy use keys 'Travel::A23::A24'");

            var result = bucket.Query<dynamic>(queryRequest);
            Console.Write(result);

GetDocument 返回客户端失败并显示消息“密钥不能为空或为空”。但同样的 N1QL 查询返回结果。请帮忙

标签: .netcouchbase

解决方案


推荐阅读