私はいくつかの文書を保存するためにMongoDBでSpringデータを使用しています。ドキュメントを保存するときに、Mongoに空のオブジェクトが含まれないようにしたいと思います。 (どのように)達成することができますか? SpringデータMongoDB - 空のオブジェクトを無視する
は、私は、次の主要なクラスがあるとしましょう:MainDoc main = new MainDoc();
main.setTitle("someTitle");
main.setSubDoc(new SubDoc());
:私は、次のオブジェクトを保存しようとするならば今
public class SubDoc {
private String title;
private String info;
}
:以下のクラスのオブジェクトを含む
@Document(collection = "main_doc")
public class MainDoc {
@Id
private String id;
private String title;
private SubDoc subDoc;
}
注:現実に私はSubDocがこのように設定されているという事実を制御しません。空でも埋めることもできます。私が望むのは、要素のプロパティ/フィールドがすべてNULLの場合、mongoにはまったく格納されないということです。上記の例のために、私は次のような結果を望むので、私は希望何
{
"_id" : "5a328f9a-6118-403b-a3a0-a55ce52099f3",
"title": "someTitle",
"subDoc": {}
}
要素のみヌルのプロパティが含まれている場合、それらは全く保存されないということです: これはMongoの中でこのようなものになり:事前に
@NoRepositoryBean
public interface MainRepo extends CrudRepository<MainDoc, String> {
// save inherited
}
感謝を:文書の
{
"_id" : "5a328f9a-6118-403b-a3a0-a55ce52099f3",
"title": "someTitle"
}
の保存は、次のようにリポジトリの助けを借りて行われます。
「main.setSubDoc(new SubDoc());」をコールしないでください。これを空に設定しています。あなたがそれを呼んでいなければ、それはそこにはありません。 –
はい、私の実際の使用例では、私はその部分を制御することはできません。私は本当にそれがマッピング中に行われる必要があります。申し訳ありませんが、それについてもっと明確にすべきです。 – CounterFlame
あなたはあなたの質問にもっと具体的になることができますか?そこに置くべきデータがない場合、あなたは単に電話をしていないと私には思われます。おそらくあなたのコードに 'if'が必要でしょう。 –