如何使用 Cosmos DB 中的 IQueryable 按多列排序?
How can I order by multiple columns using the IQueryable in Cosmos DB?
如何使用 Cosmos DB 中的 IQueryable 按多列排序?
我尝试执行以下操作:
books.OrderBy(book => book.Author).ThenBy(book => book.Name);
它适用于 Cosmos DB 模拟器,但不适用于真实数据库。为什么?
这是我收到的错误:
The order by query does not have a corresponding composite index that it can be served from.
这不是您的 C# 代码的问题。如果你想在 属性 上使用 ORDER BY
,那么 属性 需要被索引。对于多个列,它是相同的,尽管您需要以完全相同的顺序出现在 ORDER BY
子句中的所有属性的复合索引。
对于您的用例,您需要将以下索引添加到您的 Cosmos DB 容器中:
"compositeIndexes": [
[
{
"path": "/Author",
"order": "ascending"
},
{
"path": "/Name",
"order": "ascending"
}
]
]
如何使用 Cosmos DB 中的 IQueryable 按多列排序?
我尝试执行以下操作:
books.OrderBy(book => book.Author).ThenBy(book => book.Name);
它适用于 Cosmos DB 模拟器,但不适用于真实数据库。为什么?
这是我收到的错误:
The order by query does not have a corresponding composite index that it can be served from.
这不是您的 C# 代码的问题。如果你想在 属性 上使用 ORDER BY
,那么 属性 需要被索引。对于多个列,它是相同的,尽管您需要以完全相同的顺序出现在 ORDER BY
子句中的所有属性的复合索引。
对于您的用例,您需要将以下索引添加到您的 Cosmos DB 容器中:
"compositeIndexes": [
[
{
"path": "/Author",
"order": "ascending"
},
{
"path": "/Name",
"order": "ascending"
}
]
]