Java 如何使用@query注释构建查询?

Java 如何使用@query注释构建查询?,java,mongodb,spring-data,spring-mongo,Java,Mongodb,Spring Data,Spring Mongo,是否有任何方法可以使用SpringDataMongo@query注释表示以下查询 db.users.find({userName: "titogeo"}, {requests: 1, _id:0}) 控制台中的上述查询输出是 请求“:[{”谁“:“blahblahblah1”, “谁”:“blahblahblah2”, “什么”:“请求”, “何时”:ISODate(“2012-09-05T17:52:14.339Z”)} 我尝试了以下方法,但没有成功 @Query("{userName: ?

是否有任何方法可以使用SpringDataMongo@query注释表示以下查询

db.users.find({userName: "titogeo"}, {requests: 1, _id:0})
控制台中的上述查询输出是

请求“:[{”谁“:“blahblahblah1”,
“谁”:“blahblahblah2”,
“什么”:“请求”,
“何时”:ISODate(“2012-09-05T17:52:14.339Z”)}

我尝试了以下方法,但没有成功

@Query("{userName: ?0}, {requests:1, _id:0}")
public Page<AddRequest> getAllFriendRequests(String userName, Pageable pageable);
@Query({用户名:?0},{请求:1,_id:0})
公共页面getAllFriendRequests(字符串用户名,可分页);
集合用户具有用户对象,而请求是其中包含AddRequest对象的列表

当我执行上述方法时,我会得到一个空白列表。感谢您的帮助


还有什么好的spring data mongo API参考网站或书籍吗?

由于您使用filter属性来限制返回的属性集(仅请求),因此需要使用以下语法中的属性关键字:

@Query(value = "{ 'userName' : ?0 }", fields = "{ 'requests': 1, '_id': 0 }")
public Page<AddRequest> getAllFriendRequests(String userName, Pageable pageable);
@Query(value=“{'userName':?0}”,fields=“{'requests':1,'u id':0}”)

公共页

由于您使用筛选器属性来限制返回的属性集(仅请求),因此需要使用以下语法中的属性关键字:

@Query(value = "{ 'userName' : ?0 }", fields = "{ 'requests': 1, '_id': 0 }")
public Page<AddRequest> getAllFriendRequests(String userName, Pageable pageable);
@Query(value=“{'userName':?0}”,fields=“{'requests':1,'u id':0}”)

公共页面

谢谢!我将在几个小时内尝试此方法并更新结果。与其他方法相比,基于JSON的@query方法在性能方面是否有任何缺点或优点?我尝试了代码,但不起作用。仍然得到一个空列表。我正在调用此方法,如下所示
userDocumentRepository.getAllFriendRequests(用户名,新页面请求(0,3))
谢谢!我将在几个小时内尝试此方法并更新结果。与其他方法相比,基于JSON的@query方法在性能方面是否有任何缺点或优点?我尝试了此代码,但不起作用。仍然得到一个空列表。我正在调用此方法,如下所示
userDocumentRepository.getAllFriendRequests(用户名,新页面请求(0,3));