2012-01-27 10 views
0

50個の異なるフィールドを持つ大きな文書があります。この文書を保存するときに必要なフィールドはわずかです。 Spring Data MongoDBはオブジェクトからnullの値フィールドを取り除くことが可能ですが、そのドキュメントをフェッチするとどうなりますか?春データMongoDB返却オブジェクトコンバータ

保存中SpringデータMongoDBは同じことを行い、nullでない値のみ保存します。

答えて

0

私たちのQueryクラスは、文書から読み取るフィールド(Javadoc)を定義できるFieldオブジェクトを返すfields()メソッドを持っています。したがって、コレクションに対してクエリーオブジェクトを実行すると、部分的なドキュメントバック、したがって部分的に満たされたドメインオブジェクトが取得されます。

+0

お返事ありがとうございます。私はいくつかの他のトラブルがあります。私は自分のコードでこれを使用しました。 \t @Query(値= "{'id':?0、 '役割':{$ in:?1}}」、フィールド=「{'firstName':1、 'lastName':1}」) \tパブリックユーザーfindOneByIdAndRolesIn(ObjectId id、List ロール); 私はあなたの代わりにユーザーオブジェクトを取得しています。 には、オブジェクトの小さな部分を使用してクライアントに提供できる方法があります。 様{ "firstNameの": "アミット"、 "middleName":ヌル、 "lastNameの": "Kaushikによる" }なしミドルネームがヌルであったからです。 ありがとうございます。 – user359490

+0

3つのフィールドのみを含むクラスを作成し、それをファインダメソッドの戻り値の型として使うことができます。このようにして、返されたドキュメントを専用クラスに投影します。ドキュメント全体が読み込まれるのを避けるために、読み込まれるフィールドをクラスに含まれるものに制限することは、依然として合理的かもしれません。 –

関連する問題