我使用 Spring Data 和 MongoDB 来保存一些文档。保存文档时,我希望 Mongo 不包含空对象。 (如何)可以实现这一目标?
假设我有以下主类:
@Document(collection = "main_doc")
public class MainDoc {
@Id
private String id;
private String title;
private SubDoc subDoc;
}
包含以下类的对象:
public class SubDoc {
private String title;
private String info;
}
现在,如果我尝试保存以下对象:
MainDoc main = new MainDoc();
main.setTitle("someTitle");
main.setSubDoc(new SubDoc());
注意:实际上我无法控制 SubDoc 是这样设置的。它可以是空的,也可以是填充的。我想要的是,如果一个元素的属性/字段都是NULL,它根本不会存储在mongo中。
这会在 mongo 中产生类似这样的结果:
{
"_id" : "5a328f9a-6118-403b-a3a0-a55ce52099f3",
"title": "someTitle",
"subDoc": {}
}
我想要的是,如果一个元素仅包含 null 属性,则它们根本不会保存,因此对于上面的示例,我希望得到以下结果:
{
"_id" : "5a328f9a-6118-403b-a3a0-a55ce52099f3",
"title": "someTitle"
}
文档的保存是在存储库的帮助下完成的,如下所示:
@NoRepositoryBean
public interface MainRepo extends CrudRepository<MainDoc, String> {
// save inherited
}
提前致谢。