繁体   English   中英

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

[英]MongoDB Spring Data - Sort by Referenced object property

我进行了大量搜索,试图做自己想做的事情,却找不到解决方案。 谁能帮我?

我有两个Mongo Collections:

一个帖子

{
    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);

但是不行,我该怎么办?

MongoDB在设计上仅是一个文档存储,您可以像关系数据库一样使用它,如果必须这样做,

  • MongoDB不适合您
  • 或者您需要同时获得这两个收藏并加入manuell

使用这种模式,您不能在一个原子操作中按用户名对帖子进行排序。 您有一些选择:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM