Springboot整合MongoDB查询数据为空--已解决
Springboot整合MongoDB,查询数据为空的问题。需要区分自己设定的id和系统自动分配的_id值。
·
集合是Student,用来描述一些学生的信息。
最开始是通过命令行将数据插入进集合的,例如这里插入了一条数据。我从可视化界面里复制出来是这样的。
* Paste one or more documents here
*/
{
"sid": "200800020102",
"name": "LiHua",
"sex": "女",
"age": "20",
"birthday": "1995-3-3",
"dname": "SC",
"classes": "2009",
"password": "123456"
}
然后实际上存储的数据是:
我的主要问题就出在了_id的内容上。我通过java API去查询,设置的查询条件是sid=“20080020102”,但是查询返回的是空值。原因是使用java写的实体类没有定义_id这个字段,而是将sid定义成了id。如下代码所示:
package com.example.springmongo.entity;
import lombok.Data;
import org.springframework.data.annotation.Id;
import java.io.Serializable;
@Data
public class Student {
@Id
private String sid;
private String password;
private String name;
private String sex;
private String age;
private String birthday;
private String dname;
private String classes;
}
然后我使用API插入的数据是这样的:
{
"_id": "202000300115",
"name": "Amy22",
"sex": "女",
"age": "18",
"birthday": "2004-02-03",
"dname": "SC",
"classes": "2022",
"_class": "com.example.springmongo.entity.Student",
"password": "123456"
}
因此我使用命令行插入的数据去查询就查出了空值。
可以看到使用API插入的数据就可以查出来。
总结:可以根据需求选择是否使用MongoDB自动生成的_id,要和自定义的id区分开,否则可能出现查询数据为空的情况。
更多推荐
已为社区贡献2条内容
所有评论(0)