Cosmos DB C# sql 未返回结果
CosmosDB C# sql not retunring results
我确定我错过了一些明显的东西。项目列表始终为空
.Net Core 2.1 网络应用程序
Microsoft.Azure.DocumentDB.Core 2.2.1
var opts = new FeedOptions()
{
PartitionKey = new PartitionKey("/clientId"),
EnableCrossPartitionQuery = true,
EnableScanInQuery = true,
};
string sql = "SELECT * FROM c ";
var items = client.CreateDocumentQuery(collectionLink: collectionLink.ToString(), sqlExpression: sql, feedOptions: opts).ToList();
if (!items.Any())
{
使用门户中的 where 子句,它按预期工作。
在门户中,我已验证集合中有文档(目前有 5 个)。
代码无一例外,所以我的database/collection名字是正确的,collectionLink也是如此。
所以我尝试了一个不同的集合,其中包含我在同一个数据库中拥有的 1000 多个文档——同样的事情,没有返回结果。
var sql = "SELECT top 10 * FROM c";
IQueryable<dynamic> query = client.CreateDocumentQuery<string>(collectionLink, new SqlQuerySpec(sql), opts);
foreach (string alias in query)
{
Console.WriteLine(alias);
}
我错过了什么?
根据我的经验,您可能在此处设置了不正确的分区键值。
PartitionKey = new PartitionKey("/clientId")
分区键需要设置为字段值,而不是字段名。
例如我的文档如下:
{
"id": "1",
"name": "jay"
}
{
"id": "2",
"name": "jay2"
}
我的partitionkey
是'name',所以这里我有两个分区:'jay'和 'jay1'.
您应该将 partitionkey
属性 设置为 'jay' 或 'jay2',而不是 'name'。
我确定我错过了一些明显的东西。项目列表始终为空
.Net Core 2.1 网络应用程序
Microsoft.Azure.DocumentDB.Core 2.2.1
var opts = new FeedOptions()
{
PartitionKey = new PartitionKey("/clientId"),
EnableCrossPartitionQuery = true,
EnableScanInQuery = true,
};
string sql = "SELECT * FROM c ";
var items = client.CreateDocumentQuery(collectionLink: collectionLink.ToString(), sqlExpression: sql, feedOptions: opts).ToList();
if (!items.Any())
{
使用门户中的 where 子句,它按预期工作。 在门户中,我已验证集合中有文档(目前有 5 个)。 代码无一例外,所以我的database/collection名字是正确的,collectionLink也是如此。
所以我尝试了一个不同的集合,其中包含我在同一个数据库中拥有的 1000 多个文档——同样的事情,没有返回结果。
var sql = "SELECT top 10 * FROM c";
IQueryable<dynamic> query = client.CreateDocumentQuery<string>(collectionLink, new SqlQuerySpec(sql), opts);
foreach (string alias in query)
{
Console.WriteLine(alias);
}
我错过了什么?
根据我的经验,您可能在此处设置了不正确的分区键值。
PartitionKey = new PartitionKey("/clientId")
分区键需要设置为字段值,而不是字段名。
例如我的文档如下:
{
"id": "1",
"name": "jay"
}
{
"id": "2",
"name": "jay2"
}
我的partitionkey
是'name',所以这里我有两个分区:'jay'和 'jay1'.
您应该将 partitionkey
属性 设置为 'jay' 或 'jay2',而不是 'name'。