当我们使用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
}
答案 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 是我的视图名称。