Cosmos DB-Spring数据-按集合查找包含

时间:2020-08-20 14:58:44

标签: spring-data azure-cosmosdb

我的实体如下:

@Document(collection = "MetadataMerchants")
public class MetadataMerchant {

        public String id;

        @PartitionKey
        public String name;

        @JsonProperty("descriptors")
        public List<String> descriptors;
}

和我的存储库如下:

@Repository
public interface MetadataMerchantRepository extends CosmosRepository<MetadataMerchant, String> {

    List<MetadataMerchant> findByName(String name);

    List<MetadataMerchant> findByDescriptorsContains(List<String> descriptors);
}

findByName正常运行,换句话说,这将返回一个结果:

repository.findByName("Test Merchant");

我希望能够查询具有特定MetadataMerchant的{​​{1}}。我尝试使用descriptor似乎无效,它总是返回空结果。

如何使用findByDescriptorsContains(List<String> descriptors)和Spring Data,如何通过集合中的值查询实体?我希望能够找到所有spring-data-cosmosdb包含特定值的MetadataMerchant。.

在Azure Cosmos DB Data Explorer中,以下查询有效:

descriptors

我从MongoDB示例中窃取了该想法(请参见SELECT * FROM MetadataMerchants m WHERE EXISTS(SELECT VALUE d FROM d IN m.descriptors WHERE d = 'a-descriptor-here')

0 个答案:

没有答案