Spring 数据 mongo 向数据库插入空值
Spring Data mongo to insert null values to DB
我正在使用 Spring 数据 mongo 向 Mongo、
插入一条记录
这是我的代码
mongoTemplate.save(人,"personCollection");
这是我的人物对象
public class Person implements Serializable {
int age;
String address;
String name;
//Getters and setters including hashcode and equals
}
我的地址在这里为空,在集合中插入记录后,数据只填充了年龄和姓名
我知道 mongodb 将 null 值和 noKey 视为同一事物,但我的要求是甚至填充 address:null 以使模式一致 我如何使用 Spring数据mongo
当前 o/p: {"age":21,"name":"john Doe"}
预期 o/p:{"age":21,"name":"john Doe","address":null}
与 RDBMS 相比,NoSQL DB 的工作方式不同。
文档 {"age":21,"name":"john Doe"} 与 {"age":21,"name":"john Doe";"address":null}
与其将密钥存储为 null 不如完全不存储密钥,这提高了 reads/updates 对数据库的性能。
但是,如果您的用例由于任何原因仍然需要解决 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}*
我已经使用下面的代码解决了这个问题
final Document document = new Document();
document.put("test1", "test1");
document.put("test2", null);
document.put("test3", "test3");
mongoTemplate.getCollection("your-collection-name").insert(document);
这里我没有使用 BSONObject,而是使用了 Document 对象,它运行良好。
数据库中插入文档
{
"_id" : ObjectId("some-id"),
"test1" : "test1",
"test2" : null,
"test3" : "test3"
}
我正在使用 Spring 数据 mongo 向 Mongo、
插入一条记录这是我的代码 mongoTemplate.save(人,"personCollection");
这是我的人物对象
public class Person implements Serializable {
int age;
String address;
String name;
//Getters and setters including hashcode and equals
}
我的地址在这里为空,在集合中插入记录后,数据只填充了年龄和姓名
我知道 mongodb 将 null 值和 noKey 视为同一事物,但我的要求是甚至填充 address:null 以使模式一致 我如何使用 Spring数据mongo
当前 o/p: {"age":21,"name":"john Doe"}
预期 o/p:{"age":21,"name":"john Doe","address":null}
与 RDBMS 相比,NoSQL DB 的工作方式不同。 文档 {"age":21,"name":"john Doe"} 与 {"age":21,"name":"john Doe";"address":null}
与其将密钥存储为 null 不如完全不存储密钥,这提高了 reads/updates 对数据库的性能。 但是,如果您的用例由于任何原因仍然需要解决 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}*
我已经使用下面的代码解决了这个问题
final Document document = new Document();
document.put("test1", "test1");
document.put("test2", null);
document.put("test3", "test3");
mongoTemplate.getCollection("your-collection-name").insert(document);
这里我没有使用 BSONObject,而是使用了 Document 对象,它运行良好。
数据库中插入文档
{
"_id" : ObjectId("some-id"),
"test1" : "test1",
"test2" : null,
"test3" : "test3"
}