在mongodb存储库中编写自定义查询

时间:2015-05-27 12:29:38

标签: mongodb spring-boot mongorepository

我在mongo存储库中编写自定义查询,如下所示:

rollback

但是当我试图通过id找到AuthenticationToken时,它无法正常工作。

public interface AuthenticationTokenRepository extends MongoRepository<AuthenticationToken, String> 
{

    AuthenticationToken save(AuthenticationToken token);

    AuthenticationToken findByToken(String token);

    @Query("{'user.username' : ?0}")
    AuthenticationToken findByUserId(String username);
}

我在身份验证表中的数据如下:

@Query("{'user._id' : ?0}")
        AuthenticationToken findByUserId(String userId);

我想在userId的基础上获取数据。任何人都可以帮助我。

2 个答案:

答案 0 :(得分:0)

我尝试了同样的例子。试试这个示例代码。它对我有用。

@Query("{user._id:?0}")
AuthenticationToken findByUser(String userId);

答案 1 :(得分:0)

在某些版本的Spring中,您必须使用 ObjectId 类而不是 String
所以你可以试试这样的东西

@Query("{'user._id' : ?0}")
    AuthenticationToken findByUserId(ObjectId objectId);

如果您想在代码中使用此查询,它将看起来像这样

String userId = "someUserId";
repository.findByUserId(new ObjectId(userId));