首页 > 解决方案 > Spring数据中的MongoDB查询以按键查找地图对象

问题描述

在我的 Spring 项目中,我想通过 map 的键从 MongoDB 获取一些 json 文档。

用户.json

{
  "client-id": "1",
  "parameters": {
    "prod": {...},
    "test": {...}
    ...
  }
}

User.java(服务器是一个 Java 对象)

@org.springframework.data.mongodb.core.mapping.Document(collection = "user")
public class User  {
  @Field("client-id")
  private String clientId;

  @Field("parameters")
  private Map<String, Server> parameters;
  ...
}

用户存储库.java

@Repository
public interface UserRepository extends MongoRepository<User, String>,
    QuerydslPredicateExecutor<User> {
    @Query("{'$and' : [{ 'client-id' : ?0 }, { 'parameters' : { ... } }]}")
    List<User> findByParameterKey(String clientId, String parameterKey);
}

在@Query 中如何动态传递键名,并用键名填充 { 'parameters' : { ... } }?例如我想这样调用函数:

findByParameterKey("1", "prod"); 

标签: jsonspringmongodb

解决方案


推荐阅读