mongoTemplate または他のクラス/インターフェイスを使用して、コレクション内の 1 つまたは複数の列を検索できますか?
たとえば、コレクションから名前だけを取得したい場合: users(name, password, age, email) 、どうすればよいですか?
mongoTemplate または他のクラス/インターフェイスを使用して、コレクション内の 1 つまたは複数の列を検索できますか?
たとえば、コレクションから名前だけを取得したい場合: users(name, password, age, email) 、どうすればよいですか?
メソッドを使用して、クエリによって返されるフィールドを指定できますQuery.fields()
。
したがって、あなたの場合、ユーザー コレクションがクラスにマップされていると仮定するとUser
、クエリは次のようになります。
Query query =new Query(whatever criteria you have);
query.fields().include("name");
List<User> list = template.find(query, User.class);
もう 1 つの方法は、MongoRepository を拡張し、Query
アノテーションでフィールドを指定することです。
public interface UserRepository extends MongoRepository<User, String> {
@Query(fields="{ 'name' : 1}")
List<User> findUserNames();
}
findUserNames
User
name フィールドと id フィールドのみが初期化されたインスタンスを返す必要があります。
編集
見た目では登録spring-data-mongo
するコンバーターがないので、クエリに含まれるフィールド以外のすべてのフィールドをString
取得するか、コンバーターを作成して登録する必要があります。User
null