mongodb如何在字符串数组

时间:2019-06-20 11:30:32

标签: mongodb spring-boot

我正在尝试根据字符串字段数组内包含特定字符串值的对象来过滤对象列表。

集合结构:

{
    "_id" : ObjectId("5b55aabe0550de0021097bf0"),
    "snomedId" : "SNOMED ID",
    "status" : "INACTIVE",
    "clientIds" : [
        "5b55aabd0550de0021097b6e",
        "5b55aabd0550de0021097b6d",
        "5b55aabd0550de0021097b6c"
    ]
}

模型类:

public class Hotel extends PersistedObject {

    private Status status;
    private List<String> clientIds = new ArrayList<>();

}

查询方法:

  @Query("{'clientIds': { $in: { 'clientId' : ?1 } }}")
    List<Diagnosis> searchFilterByClientId(String term,String clientId);

所以在这里,我想获取一个酒店列表,其中包含在clientId字段列表中传递的clientId值。但这返回以下异常: “查询失败,错误代码为2,错误消息'$ in需要一个数组”

1 个答案:

答案 0 :(得分:0)

无需使用$in。只需在clientId上找到就可以了。

db.collection.find({clientIds: "5b55aabd0550de0021097b6e"})

或者您的情况:

  @Query("{'clientIds': ?1}")
    List<Diagnosis> searchFilterByClientId(String term,String clientId);

MongoPlayground