草庐IT

spring - Spring Boot Mongo带有非结构化文档

coder 2023-11-01 原文

我有一个springboot应用程序正在和一个mongo数据库对话,其中一个集合有点“非结构化”。这个集合都与“app config”相关,但不同的应用程序有不同的内容。有些应用程序只有一些顶级的东西,有些有深度嵌套的文档。
如果有一些常见的“顶层”文档,我会有一个类,它就像一个@Id String id,然后是一个Map<String, Object> info或者其他什么,但是“灵活”的数据在顶层。那么,我可以用likeMongoRepository<Map<String,Object>, String>或其他东西来扩展Mongorepository吗?有没有更好的方法来处理这样的事情?

最佳答案

如果您想用springboot构建rest服务,请遵循下面给出的示例代码。
1)使用spring初始化器下载spring项目(例如:com.library.demo)
2)剩下的代码如下
应用程序.属性

server.port=8091
spring.data.mongodb.uri=mongodb://localhost:27017/<databaseName>

com.library.demo.model->图书.java
package com.librarysystem.demo.model;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection="booklist")
public class Book {
    @Id
    String _id;
    String Name;
    String ISBN;
    String Author;

public Book(String Name,String ISBN,String Author) {
    this.Name=Name;
    this.ISBN=ISBN;
    this.Author=Author;
}

public String getName() {
    return Name;
}

public void setName(String name) {
    Name = name;
}

public String getISBN() {
    return ISBN;
}

public void setISBN(String iSBN) {
    ISBN = iSBN;
}

public String getAuthor() {
    return Author;
}

public void setAuthor(String author) {
    Author = author;
}
}

com.library.demo.repository->BookRepository.java
 import com.librarysystem.demo.model.Book;

@Repository
public interface BookRepository extends MongoRepository<Book, String>{
    public Book findByName(String BookName);
}

com.library.demo.service->bookservice.java
import com.librarysystem.demo.repository.BookRepository;

@Service
public class BookService {

@Autowired
private BookRepository bookrepository;

public Book create(String Name,String ISBN,String Author) {
    return bookrepository.save(new Book(Name,ISBN,Author));
}

public Book getByBookName(String name) {
    return bookrepository.findByName(name);
}
public List<Book>getAll(){
    return bookrepository.findAll();
}


public void delete(String Name) {
    Book b=bookrepository.findByName(Name);
    bookrepository.delete(b);
}

}

com.library.demo.controller->bookcontroller.java
import com.librarysystem.demo.service.BookService;

@RestController
public class BookController {

    @Autowired
    private BookService bookservice;

 @RequestMapping("/create")
 public String create(@RequestParam String Name,@RequestParam String ISBN,@RequestParam String Author) {
    Book b=bookservice.create(Name, ISBN, Author);
    return b.toString();
}

@RequestMapping("/get")
public Book getBook(@RequestParam String Name) {
    return bookservice.getByBookName(Name);
}

@RequestMapping("/getAll")
public List getBook() {
    return bookservice.getAll();
}

@RequestMapping("/delete")
public String delete(@RequestParam String name) {
    bookservice.delete(name);
    return "deleted"+name;
    }
}

希望这里有你需要的东西

关于spring - Spring Boot Mongo带有非结构化文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48173231/

有关spring - Spring Boot Mongo带有非结构化文档的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - 带 Spring 锁的 Rails 4 控制台 - 2

    我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.

  3. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

    给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

  4. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  5. spring.profiles.active和spring.profiles.include的使用及区别说明 - 2

    转自:spring.profiles.active和spring.profiles.include的使用及区别说明下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示我们都知道,在日常开发中,开发|测试|生产环境都拥有不同的配置信息如:jdbc地址、ip、端口等此时为了避免每次都修改全部信息,我们则可以采用以上的属性处理此类异常spring.profiles.active属性例:配置文件,可使用以下方式定义application-${profile}.properties开发环境配置文件:application-dev

  6. ruby-on-rails - 一般建议和推荐的文件夹结构 - Sinatra - 2

    您将如何构建一个简单的Sinatra应用程序?我正在制作,我希望该应用具有以下功能:“应用程序”更像是一个包含所有信息的管理仪表板。然后另一个应用程序将通过REST访问信息。我还没有创建仪表板,只是从数据库中获取东西session和身份验证(尚未实现)您可以上传图片,其他应用可以显示这些图片我已经使用RSpec创建了一个测试文件通过Prawn生成报告目前的设置是这样的:app.rbtest_app.rb因为我实际上只有应用程序和测试文件。到目前为止,我已经将Datamapper用于ORM,将SQLite用于数据库。这是我的第一个Ruby/Sinatra项目,所以欢迎任何和所有建议-我应

  7. ruby-on-rails - 带有 Zeus 的 RSpec 3.1,我应该在 spec_helper 中要求 'rspec/rails' 吗? - 2

    使用rspec-rails3.0+,测试设置分为spec_helper和rails_helper我注意到生成的spec_helper不需要'rspec/rails'。这会导致zeus崩溃:spec_helper.rb:5:in`':undefinedmethod`configure'forRSpec:Module(NoMethodError)对thisissue最常见的回应是需要'rspec/rails'。但这是否会破坏仅使用spec_helper拆分rails规范和PORO规范的全部目的?或者这无关紧要,因为Zeus无论如何都会预加载Rails?我应该在我的spec_helper中做

  8. Ruby:如何使用带有散列的 'send' 方法调用方法? - 2

    假设我有一个类A,里面有一些方法。假设stringmethodName是这些方法之一,我已经知道我想给它什么参数。它们在散列中{'param1'=>value1,'param2'=>value2}所以我有:params={'param1'=>value1,'param2'=>value2}a=A.new()a.send(methodName,value1,value2)#callmethodnamewithbothparams我希望能够通过传递我的哈希以某种方式调用该方法。这可能吗? 最佳答案 确保methodName是一个符号,而

  9. ruby-on-rails - 带有 Pry 的 Rails 控制台 - 2

    当我进入Rails控制台时,我已将pry设置为加载代替irb。我找不到该页面或不记得如何将其恢复为默认行为,因为它似乎干扰了我的Rubymine调试器。有什么建议吗? 最佳答案 我刚发现问题,pry-railsgem。忘记了它的目的是让“railsconsole”打开pry。 关于ruby-on-rails-带有Pry的Rails控制台,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

  10. 带有 attr_accessor 的类上的 Ruby instance_eval - 2

    我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到

随机推荐