![](/img/trans.png)
[英]How to rename a container in Azure Cosmos DB with Java SQL API?
[英]How to fix: Azure Cosmos DB SQL API does not seem to work
我目前正在參與從MongoDB實例遷移到Azure Cosmos數據庫實例。 因此,我拋棄了mongo-java-driver依賴項並將其替換為最新的azure-documentdb(版本2.4.0)依賴項。
我在我的foobar
Azure Cosmos數據庫中有一個trips
集合,其中包含以下文檔結構:
{
"_id" : ObjectId("5d0cdd6a6b1bb358985eb5d5"),
"od" : 1561075200000,
"rid" : "d001",
"tnr" : 1007,
"rsn" : 0,
"p" : [
{
"s" : 1,
"st" : "P",
"sid" : "18003100",
},
{...}
]
}
我為這個遷移項目嘗試的第一件事就是使用一個簡單的where語句來查詢我的trip集合,該語句的代碼與這里的示例非常相似: https : //github.com/Azure/azure-documentdb-的Java /
問題如下。 當我嘗試查詢trip集合中的rid
等於d001
文檔時,它會使用以下代碼返回零結果。 不應該是這種情況,因為我的旅行集合中有9個匹配的文件。
DocumentClient client = new DocumentClient(
HOST,
MASTER_KEY,
ConnectionPolicy.GetDefault(),
ConsistencyLevel.Session);
FeedOptions feedOptions = new FeedOptions();
FeedResponse<Document> query = client.queryDocuments(
"dbs/foobar/colls/trips",
"SELECT * FROM trips t WHERE t.rid='d001'",
feedOptions);
List<Document> results = query.getQueryIterable().toList();
System.out.println(results.size());
同時將查詢更改為"SELECT t.rid FROM trips t"
會返回零結果。 同時將查詢更改為"SELECT * FROM trips t WHERE t['rid']='d001'"
返回零結果。
當我將查詢更改為"SELECT * FROM trips t"
一切似乎都很好,它會返回集合中的所有文檔。
這可能是什么問題?
嘗試使用以下查詢,
FeedResponse<Document> query = client.queryDocuments(
"dbs/foobar/colls/trips",
"SELECT * FROM trips t WHERE t.rid='d001'",
null).toBlocking().first();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.