Я работаю над Azure Cosmos DB с SQL Api. Я использую Azure SDK из:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-documentdb</artifactId>
<version>2.4.7</version>
</dependency>
У меня есть список идентификаторов , и я хотел бы найти все документы с идентификаторами из своего списка , Для этого я использую Azure SDK SqlQuerySpe c, где я определил запрос «WHERE IN» следующим образом:
List<String> ids = Lists.newArrayList("1");
SqlQuerySpec spec = new SqlQuerySpec(
"SELECT * FROM MyLog c WHERE c.id IN (@ids)",
new SqlParameterCollection(new SqlParameter("@ids", ids)));
FeedResponse<Document> documentFeedResponse = documentClient.queryDocuments(collectionLink, spec, queryOptions);
List<Document> documents = documentFeedResponse.getQueryIterable().toList();
Но, к сожалению, список «документов» пуст, хотя в В моей базе данных у меня есть документ с id = 1. Просто для двойной проверки я попытался выполнить запрос на портале:
SELECT * FROM c, где c .id IN ("1")
он возвращает данные правильно. Поэтому я не уверен, что я делаю неправильно. Кто-нибудь уже создал SqlQuerySpe c, чтобы получить список документов с указанными идентификаторами?