我是反应式编程新手,目前我有以下问题。我有一个人类的目标。具有属性id、firstName、lastName和List的java类
人类JAVA
@Document
public class Human {
@Id
@JsonIgnore
private String id;
private String firstName;
private String lastName;
private List<Hobbies>hobbies;
public Human(String fName, String lName, List<Hobbies> hobb) {
this.firstName= dNum;
this.lastName= saNum;
this.hobbies= hobb;
}
public String getId() {
return this.id;
}
public String getFirstName() {
return this.firstName;
}
public String getLastName() {
return this.lastName;
}
public List<Hobbies> getHobbies() {
return this.hobbies;
}
public void setFirstName(String fName) {
this.firstName = fName;
}
public void setLastName(String lName) {
this.lastName= lName;
}
public void setHobbies(List<Hobbies> hobb) {
this.hobbies= hobb;
}
}
Hobbies.java
public class Hobbies {
private String type;
public Hobbies(String typ) {
this.type = typ;
}
public String getType() {
return this.type;
}
public void setType(String typ) {
this.type = typ;
}
}
人Config.java
@Configuration
public class HumanConfig {
@Autowired
MongoClient mongoClient;
@Bean
public ReactiveMongoTemplate reactiveMongoTemplate() {
return new ReactiveMongoTemplate(mongoClient, "human");
}
}
人形路由器。JAVA
@Configuration
public class HumanRouter {
@Bean
public RouterFunction<ServerResponse> humanRoute(HumanHandler humHandler) {
return RouterFunctions
.route(GET("/api/listHumans").and(accept(MediaType.APPLICATION_JSON)),
humHandler::getAllHumans)
.andRoute(POST("/api/newHuman").and(accept(MediaType.APPLICATION_JSON)),
humHandler::create);
}
}
人类训练师。JAVA
@Component
public class HumanHandler {
private final HumanService humService;
@Autowired
public HumanHandler(HumanService humService) {
this.humService= humService;
}
public Mono<ServerResponse> getAllHumans(ServerRequest serverRequest) {
Flux<Human> result = humService.getAllHumans();
return result
.collectList()
.flatMap(h -> {
if(h.isEmpty()) {
return ServerResponse.notFound().build();
}
else {
return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON).body(fromValue(h));
}
});
}
public Mono<ServerResponse> create(ServerRequest request ){
public Mono<ServerResponse> create(ServerRequest request ){
Mono<Human> humToCreate = request.bodyToMono(Human.class);
Mono<Human> created = humService.createHum(humToCreate );
Mono<Object> id = created.map(item -> item.getId());
return ServerResponse.created(UriComponentsBuilder.fromPath(request.uri()+ "/"+ id).build().toUri())
.contentType(MediaType.APPLICATION_JSON).body(created.map(item -> item.getId()), String.class);
}
}
人力服务。JAVA
@Service
public class HumanService {
@Autowired
ReactiveMongoTemplate mongo;
public Flux<Human> getAllHumans(){
return mongo.findAll(Human.class);
}
public Mono<Human> createHum(Mono<Human> human){
return mongo.save(human);
}
人性化的应用。JAVA
@SpringBootApplication
@ComponentScan({"human"})
public class HumanApplication {
public static void main(String[] args) {
SpringApplication.run(HumanApplication.class, args);
}
}
我在POST请求的正文中放入Postman的json对象如下所示:
{
"firstName": "John",
"lastName": "Johnson",
"hobbies": [
{
"type": "reading"
},
{
"type": "travelling"
}
]
}
docker撰写。亚马尔
version: "3.8"
services:
mongodb:
image: mongo
container_name: human
ports:
- 27017:27017
volumes:
- data:/data
environment:
- MONGO_INITDB_ROOT_USERNAME=rootuser
- MONGO_INITDB_ROOT_PASSWORD=rootpass
mongo-express:
image: mongo-express
container_name: mongo-express-human
restart: always
ports:
- 8081:8081
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=rootuser
- ME_CONFIG_MONGODB_ADMINPASSWORD=rootpass
- ME_CONFIG_MONGODB_SERVER=mongodb
volumes:
data: {}
networks:
default:
name: mongodb_network_v2
应用属性
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=rootuser
spring.data.mongodb.password=rootpass
spring.data.mongodb.database=calibration
spring.data.mongodb.port=27017
spring.data.mongodb.host=localhost
server.error.include-message=always
我真的不知道我做错了什么。我将不胜感激!
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
...
</dependencies>
...
</project>
spring.data.mongodb.uri=mongodb+srv://rootuser:
rootpass@<cluster>.mongodb.net/mygrocerylist
Spring数据mongodb。数据库=校准
查看此项了解更多信息-
问题内容: 我有一个符合协议的简单对象。 我正在尝试将其实例保存在其中,但是由于以下错误,它一直失败。 由于未捕获的异常“ NSInvalidArgumentException”而终止应用程序,原因:“试图为关键jobCategory插入非属性列表对象” 这是我要保存的代码。 我用普通字符串将枚举值替换为key,但是仍然发生相同的错误。知道是什么原因造成的吗? 问题答案: 您需要创建从您的实例使用
在我的代码中,一个函数返回一个protobuf对象,我想把它保存在一个文件xyz中。pb 当我试图使用fs保存它时。writefilesync没有保存它。 它本质上是圆形的。所以,我尝试使用循环json模块保存它,以确认其中是否有任何内容,以及它是否有数据。 但是,由于我首先使用了循环json,它没有正确的信息(格式不正确),也没有任何用处。 如何使用nodejs将此原型保存在文件中? 谢谢
本文向大家介绍在MongoDB中如何获取保存的对象?,包括了在MongoDB中如何获取保存的对象?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个变量。以下是查询- 以下是使用save()保存记录的查询- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-
我是MongoDB的新手,我正在用Mongoose创建一个简单的数据库,模型如下:用户、游戏和玩家。 因此,一个用户不包含或包含多个游戏。每个游戏都有一个玩家,每个玩家都指一个用户。如下所示(为了清晰起见,我简化了模式): 因此,现在在前端,我想向后端发送一份请愿书,为用户Joe(_id:11111)和Bob(_id:22222)创建一个新游戏,因此我向/api/games发送了一篇帖子,帖子的主
我使用一个自定义的视图,在我使用画布,用户可以绘制任何东西,之后,我想保存在sd卡的图像,英国电信是不能做到这一点。不知道是怎么回事。
如何在Express js中从数据库中取回对象?当我执行POST请求时,我只返回状态201,而不是响应中的对象。 按照下面的方式,它返回一个空的res.data字段,而不是对象。 要将所有对象恢复到数组中,我可以这样做: