查找具有 id 数组的所有用户

时间:2021-02-18 19:53:55

标签: mongodb spring-boot mongotemplate

嗨,我正在使用 mongoTemplate 和 springboot 并具有如下所示的用户模式,我正在做的是维护用户好友关注者并将用户名数组存储在关注者字段中,这是一个数组,以便我可以使用 all 获取所有朋友该用户名并将其显示给用户,我也不想一次加载所有朋友,我想分页。但是我该怎么做,我不知道,有人可以帮助我。

     @Data
     @Document(collection = "User")
     public class User {

     @Id
     private String id;
@Indexed
private String username;   // username of the user
@Indexed
private String name;       //name of the user
private List<String> followers;     // list of user following me
private List<String> following;     // list of user following

}

伪模态

    {
      "id": "id1",
      "username": "tom21",
      "name" : "Tom",
      "followers" : ["jerry","oggy","bob","jack]
    }

我想搜索所有用户名存在于 follower 数组中的文档,我该怎么做??

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以工作:

import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query.query;

// somehow get an instance of a MongoTemplate and a User...

List<User> found = mongoTemplate.query(User.class)
   .matching(query(where("username").in(currentUser.getFollowers())))
   .all();