如何使用Spring数据MongoDB搜索嵌套在数组内的对象列表?

时间:2018-12-13 10:01:48

标签: mongodb spring-data spring-data-mongodb

我有一个文档集合,每个文档都包含一个嵌套的对象数组。

{
  "id": "309324739",
  "debters": [
    {
      "user": {
        "name": "John Doe",
        "internal": true
      },
      "debt": 1463,
    },
    {
      "user": {
        "name": "Alex Tree",
        "internal": false
      },
      "debt": 53443,
    },
}

我要做的是返回通过 id 查找文档,然后在具有 false debters 列表中查找标记?

我尝试了以下查询...

Debters findByIdAndDebters_User_InternalIsFalse(@Param("id") String id,);

但是我收到一条错误消息,说它可以找到“内部”属性。我在做什么错,如何使用这个神奇的mongo存储库查询遍历数组?

1 个答案:

答案 0 :(得分:0)

您需要编写类似于以下内容的本地查询     @Query("{'debters.user.internal':false,'_id':''}")      Debters findByIdAndDebtersUserInternalIsFalse(@Param("id") String id,);