5 java mongodb spring-mongo spring-data-mongodb
我正在使用Spring数据mongo向Mongo插入一条记录,
这是我的代码mongoTemplate.save(person,“ personCollection”);
这是我的人对象
public class Person implements Serializable {
int age;
String address;
String name;
//Getters and setters including hashcode and equals
}
Run Code Online (Sandbox Code Playgroud)
我的地址在此处为null,在将记录插入集合中之后,仅使用年龄和姓名填充数据
我知道mongodb将null值和noKey视为同一个东西,但是我的要求是甚至填充address:null以使架构保持一致如何使用Spring Data mongo做到这一点
当前o / p:{“ age”:21,“ name”:“ john Doe”}
预期的o / p:{“ age”:21,“ name”:“ john Doe”,“ address”:null}
小智 7
与 RDBMS 相比,NoSQL DB 的工作方式不同。文档 {"age":21,"name":"john Doe"} 与 {"age":21,"name":"john Doe";"address":null} 相同
与其将密钥存储为空,不如根本不存储密钥,这可以提高数据库读取/更新的性能。但是,如果您的用例由于某种原因仍然需要 null,则可能会将 POJO 转换为 BSONObject,然后将 BSONObject 保留在 MongoDB 中。
这是示例(但这只是让事情顺利进行的一种解决方法)
BSONObject personBsonObj = BasicDBObjectBuilder.start()
.add("name","John Doe")
.add("age",21)
.add("address",null).get();
if you are using spring data mongo use
mongoTemplate.insert(personBsonObj,"personCollection");
document in the db:
db.personCollection.findOne().pretty();
{"age":21,"name":"John Doe";"address":null}*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4409 次 |
| 最近记录: |