使用spring数据存储库查询带有嵌入文档字段的文档

时间:2016-06-09 23:14:01

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

我是Spring-data的新手,所以请原谅我,如果我的问题是天真的

我正在尝试查询看起来像这样的文档:

     {
       _id: 1,
       name: "sue",
       age: 19,
       type: 1,
       status: "P",
       favorites: { artist: "Picasso", food: "pizza" },
       finished: [ 17, 3 ],
       badges: [ "blue", "black" ],
       points: [
          { points: 85, bonus: 20 },
          { points: 85, bonus: 10 }
       ]
     }

我想进行查询,该查询会为我提供包含favourites.artist="Picasso"的条目列表。

我知道如何使用MongoTemplate使用MongoRepository进行此操作。

我正在阅读一些显示此类查询的文件

findByFavorites(Favorites favorites)

但是我找不到任何可以使用嵌入文档字段查询的内容。

1 个答案:

答案 0 :(得分:1)

应该是

    findByFavoritesArtist(@Param("favorites.artist") String artist);

因此,您只需将嵌入对象中属性路径中属性的名称连接在一起即可。上述查询可能是多余的,您可以省略@Param注释。