1

有什么方法可以使用 spring-data mongo @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);

集合 users 具有 User 对象, requests 是一个列表,其中包含 AddRequest 对象。

当我执行上述方法时,我得到一个空白列表。任何帮助表示赞赏。

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

4

1 回答 1

9

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

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

这是一个对 spring-data mongodb 有用的站点:http: //static.springsource.org/spring-data/data-document/docs/current/reference/html/

于 2012-09-05T20:49:36.253 回答