MongoDB Spring Data - 按引用对象属性排序

时间:2015-06-18 15:31:28

标签: java spring mongodb

我搜索了很多试图做我想做的事情但无法找到解决方案。任何人都可以帮助我吗?

我有两个Mongo系列:

一个。交

{
    content: "...",
    user: {
        $ref: "user",
        $id: ObjectId(...)
    }
}

B中。用户

{
    name: "user name",
    age: 21
}

我想列出按用户名排序的所有帖子,我可以这样做吗?

我尝试过类似的东西:

Query query = new Query();
query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "user.name")));
return mongoTemplate.find(query, Post.class);

但是不起作用,我该怎么办?

2 个答案:

答案 0 :(得分:0)

MongoDB只是一个设计的文档存储,你可以像关系数据库一样使用它,如果你需要这样的话,

  • MongoDB不适合你
  • 或者你需要获得两个收藏并加入他们manuell

答案 1 :(得分:0)

使用此架构,您无法在一个原子操作中按用户名对帖子进行排序。 你有一些选择:

  1. 用户字段中使用用户名,并确保您在用户集合中的字段名称上有索引,因此您可以在一个操作中按用户名对帖子进行排序将通过使用索引来提高性能。
  2. 如果您不想更改架构,请尝试使用mongo聚合框架。