当前位置: 首页 > 知识库问答 >
问题:

如何利用Spring Data从Mongo多文档中提取所有嵌入文档

宫元徽
2023-03-14

我使用的是Spring Data Mongo,我在MongoDB中有近10,000个文档。我使用的是Spring Boot+Spring Data Mongo示例

{
  "_id" : ObjectId("592c7029aafef820f432c5f3"),
  "_class" : "lankydan.tutorial.mongodb.documents.Person",
  "firstName" : "John",
  "secondName" : "Doe",
  "dateOfBirth" : ISODate("2017-05-29T20:02:01.636+01:00"),
  "address" : {
    "addressLineOne" : "19 Imaginary Road",
    "addressLineTwo" : "Imaginary Place",
    "city" : "Imaginary City",
    "country" : "US"
  },
  "profession" : "Winner",
  "salary" : 100,
  "hobbies" : [ 
    {
      "name" : "Badminton"
    }, 
    {
      "name" : "TV"
    }
  ]
} 

因为address嵌入到用户集合中。如何提取所有唯一地址或所有地址?我想为此写服务。

我需要为此创建索引吗?

共有1个答案

傅高逸
2023-03-14

您必须创建一个名为Address的POJO类,其中必须将其字段定义为:

 public class Address {

 private String addressLineOne;
 private String addressLineTwo;
 private String city;
 private String country;

// getters and setters

}

然后,您必须修改您的user.java类:

public class User {

private String id;
// other fields    
private Address address;
// other fields

}

Spring的jackson liberary会自动将这些字段绑定到POJO。

System.out.println(user.getAddress.getAddressLineOne);
System.out.println(user.getAddress.getCity);
 类似资料:
  • 这里我有两个文档,我需要查询以获得和我只想获得符合以上条件的注释。并非所有评论。 ' { “_id”: ObjectId(“53b7f2383ed7755c2400002e”), “title”: “Post One”, “author”: “bob”, “posted”: ISODate(“2014-07-05T12:40:24.0Z”), “pageViews”: NumberInt(5),

  • 我有以下mongo文件: 我希望找到此文档并仅提取 ... 我的当前代码使用以下内容执行此操作: 他没有运行思想文档(如上所述),而是有没有办法使用点符号 ?例如:

  • 我正在尝试用大量新值替换所有文档。 例如,我们在数据库中500k文档,并且我们500k了相同的文档,其中包含更新的道具。现在我们需要更新旧数据。 想法是在新集合中使用InsertMany with lean选项,然后删除旧集合以减少读/写次数。 问题是,对于这种情况,有没有更简单的方法? 在这种情况下,也许连进出口都更好? PS模型。updateMany()有一个过滤器,我们这里不需要过滤器,因为

  • 问题内容: 如何 使用PHP 从PDF文档中提取文本? (我不能使用其他工具,我没有root用户访问权限) 我发现一些函数可用于纯文本,但是它们不能很好地处理Unicode字符: http://www.hashbangcode.com/blog/zend-lucene-and-pdf-documents-part-2-pdf- data-extraction-437.html 问题答案: 下载 c

  • 其中url是RDF/XML web文档。

  • 我想从一个集合中得到所有的文件,然后用它们,得到他们的身份证。这里我的集合如何是用户集合,它只是一个集合和多个文档。我试了一下,但不起作用: 更新