我有一个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>
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;
}
}
import com.librarysystem.demo.model.Book;
@Repository
public interface BookRepository extends MongoRepository<Book, String>{
public Book findByName(String BookName);
}
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);
}
}
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/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我正在使用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.
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
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
转自:spring.profiles.active和spring.profiles.include的使用及区别说明下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示我们都知道,在日常开发中,开发|测试|生产环境都拥有不同的配置信息如:jdbc地址、ip、端口等此时为了避免每次都修改全部信息,我们则可以采用以上的属性处理此类异常spring.profiles.active属性例:配置文件,可使用以下方式定义application-${profile}.properties开发环境配置文件:application-dev
您将如何构建一个简单的Sinatra应用程序?我正在制作,我希望该应用具有以下功能:“应用程序”更像是一个包含所有信息的管理仪表板。然后另一个应用程序将通过REST访问信息。我还没有创建仪表板,只是从数据库中获取东西session和身份验证(尚未实现)您可以上传图片,其他应用可以显示这些图片我已经使用RSpec创建了一个测试文件通过Prawn生成报告目前的设置是这样的:app.rbtest_app.rb因为我实际上只有应用程序和测试文件。到目前为止,我已经将Datamapper用于ORM,将SQLite用于数据库。这是我的第一个Ruby/Sinatra项目,所以欢迎任何和所有建议-我应
使用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中做
假设我有一个类A,里面有一些方法。假设stringmethodName是这些方法之一,我已经知道我想给它什么参数。它们在散列中{'param1'=>value1,'param2'=>value2}所以我有:params={'param1'=>value1,'param2'=>value2}a=A.new()a.send(methodName,value1,value2)#callmethodnamewithbothparams我希望能够通过传递我的哈希以某种方式调用该方法。这可能吗? 最佳答案 确保methodName是一个符号,而
当我进入Rails控制台时,我已将pry设置为加载代替irb。我找不到该页面或不记得如何将其恢复为默认行为,因为它似乎干扰了我的Rubymine调试器。有什么建议吗? 最佳答案 我刚发现问题,pry-railsgem。忘记了它的目的是让“railsconsole”打开pry。 关于ruby-on-rails-带有Pry的Rails控制台,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question
我了解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类(对象)然后它实际上将它添加到