簡體   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