【问题标题】:Get nested list using spring boot from Mongodb使用 Spring Boot 从 Mongodb 获取嵌套列表
【发布时间】:2019-12-25 11:26:41
【问题描述】:

我正在尝试在 MongoDB 中查询来自 profileTwitter 的 Just idProfil 和主题标签列表,下面是对象:

{
"idProfil": "5ded2abae1692808b799b239",
"tweets": [
  {
    "idTweet": "5ded2dffe1692808b799b241",
    "datePublication": "2019-12-08T16:58:59.702+0000",
    "hashtags": [
      {
        "idHashtag": "5ded2c64e1692808b799b23c",
        "label": "recipes "
      },
      {
        "idHashtag": "5ded2c71e1692808b799b23d",
        "label": "delicious "
      },
      {
        "idHashtag": "5ded2c7ce1692808b799b23e",
        "label": "foodrecipes"
      },
      {
        "idHashtag": "5ded2c84e1692808b799b23f",
        "label": "canada "
      },
      {
        "idHashtag": "5ded2c8de1692808b799b240",
        "label": "Usa"
      },
      {
        "idHashtag": "5dee65d7e39e962d44a31c40",
        "label": "food"
      },
      {
        "idHashtag": "5dee65c8e39e962d44a31c3f",
        "label": "cooking"
      }
    ]
  }
 }

所以我的问题是如何使用 spring boot 做到这一点?

【问题讨论】:

  • 请分享您尝试过的代码。
  • 我没有尝试任何我无法理解的解决方案!
  • 要获取嵌套列表需要使用spring data MongoDB聚合框架。在那里,您可以添加管道阶段,如匹配和投影。
  • @AshishBakwad 你能根据我在这篇文章中发布的数据给我一个例子吗!?

标签: mongodb spring-boot


【解决方案1】:

此示例基于您提供的数据。你的问题不清楚。能否请您提供更多详细信息。

List<AggregationOperation> stages = new ArrayList<>();

ProjectOperation projectOperation = project("idProfil").and("$tweets.hashtags").as("hashtags");

stages.add(projectOperation);

AggregationResults<ResultDTO> result = mongoOperation.aggregate(newAggregation(stages),
        "profileTwitter", ResultDTO.class);


public class ResultDTO {

   private String idProfil;

   private List<HashtagDTO>  hashtags;

   //getter setter

}

public class HashtagDTO {

   private String idHashtag;

   private String label;

   //getter setter

}

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 2021-04-17
    • 1970-01-01
    • 2017-11-14
    • 2015-05-02
    相关资源
    最近更新 更多