В настоящее время я занимаюсь миграцией с экземпляра MongoDB на экземпляр Azure Cosmos DB. Из-за этого я выкидываю зависимость mongo-java-driver и заменяю ее последней зависимостью azure-documentdb (версия 2.4.0).
У меня есть коллекция trips
в моей базе данных foobar
Azure Cosmos со следующей структурой документа:
{
"_id" : ObjectId("5d0cdd6a6b1bb358985eb5d5"),
"od" : 1561075200000,
"rid" : "d001",
"tnr" : 1007,
"rsn" : 0,
"p" : [
{
"s" : 1,
"st" : "P",
"sid" : "18003100",
},
{...}
]
}
Первое, что я попробовал для этого проекта миграции, - это запрос моей коллекции поездок с помощью простого оператора where, который по кодам почти такой же, как в примере, найденном здесь: https://github.com/Azure/azure-documentdb-java/
Проблема заключается в следующем. Когда я пытаюсь запросить коллекцию поездок для документов, где 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"
, все выглядит просто отлично, и он возвращает все документы в коллекции.
В чем здесь проблема?