couchbase服务器不使用c#代码返回桶中手动添加的文档(我在couchbase服务器上的create bucket选项中添加)

时间:2017-05-14 09:06:59

标签: c# couchbase

当我们使用select查询从couchbase服务器获取文件而不是我手动添加的文档时,仅以编程方式添加记录返回(使用在c#i中添加在couchbase服务器中的集群)但我想要所有文档

我的代码如下。我错过了什么

        var clientConfiguration = new ClientConfiguration();
        clientConfiguration.Servers = new List<Uri> { new Uri("http://localhost:8091/pools/") };

        List<string> objDocList = new List<string>();
        Cluster Cluster = new Cluster(clientConfiguration);
        var bucket = Cluster.OpenBucket();
        var result = bucket.Query<dynamic>("select * from testbucket");


        foreach (var row in result)
        {

                dynamic propJSON = JsonConvert.SerializeObject(row);

       //propJSON not contain id

        }

1 个答案:

答案 0 :(得分:0)

正如所写的那样,您的查询正在达到默认存储桶,而不是testbucket。您还应该将您的存储桶包装在using语句中。

您可能需要在testbucket上创建主索引。 This answer提供了对必要内容的最佳讨论。

您的代码最终会像...

using (var bucket = Cluster.OpenBucket("TestCheck2"))
{
    var query = bucket.CreateQuery("dev_testcheck2", "getall");
    var data = bucket.Query<dynamic>(query);
    foreach (var item in data.Rows)
    {
        Console.WriteLine($"{item.Value[0]}: Title: \"{item.Value[1]}\" Body: {item.Value[2]}");
    }
}

dev_testcheck2 是我的开发视图设计文档名称的后缀 getall 是我的视图名称。