【发布时间】:2018-11-05 19:52:22
【问题描述】:
我不确定,但我认为我在 Azure Cosmos DB 中发现了一个错误。这是我的情况。我有以下 JSON
{
"id": "token",
"User": {
"UserToken": "token",
"Email": "email@email.com"
},
"_ts": 1521728825
}
我使用 LINQ 编写了以下查询:
await _dbClient.Where<UserDocument>(_collectionUri,feedOptions,
d => d.User.UserToken == searchString
|| d.User.Email.Contains(searchString))
.OrderByDescending(d => d.Timestamp)
.AsDocumentQuery().ToListAsync())
当我用searchString=="token" 运行它时,它会返回一个空列表,所以我决定修改查询:
await _dbClient.Where<UserDocument>(_collectionUri,feedOptions,
d => d.User.UserToken == searchString)
.OrderByDescending(d => d.Timestamp)
.AsDocumentQuery().ToListAsync())
神奇地它开始工作了。有人可以告诉我我做错了什么吗?或者 CosmosDB 中的 CONTAINS 方法可能存在问题??
【问题讨论】:
-
有趣的事实是,当我将 order by 子句添加到查询中时,我始终得到零结果。
-
UserToken是否已编入索引?如果是这样,您的索引是一致的还是惰性的?
标签: c# linq azure asp.net-core azure-cosmosdb