Как проверить, имеет ли конкретное поле определенное значение в MongoDB, используя Java Spring?

#java #spring #database #mongodb

#java #spring #База данных #mongodb

Вопрос:

Это моя структура. Допустим, у меня есть куча этих объектов в моей коллекции. Я хочу выполнить поиск значения для поля twitterId . В этом случае, допустим, я хочу проверить, существует ли 102030 значение в каком-либо из моих twitterId полей? Как я могу создать этот запрос в Java Spring?

 { 
"_id" : ObjectId("5f4edc8f0edc9e79dcd58cb4"), 
"twitterId" : "102030", 
"fullName" : "Elon Musk", 
"followers" : [ ], 
"_class" : "xxxx.yyyyy.model.User" 
}
  

Комментарии:

1. Есть много способов написать запрос, используя Spring Data MongoDB. Одним из способов является запрос с использованием MongoTemplate#exists метода.

Ответ №1:

Вам понадобится репозиторий, который будет выполнять поиск. Создайте что-то вроде этого:

 @Repository("user")
public interface UserRepository extends MongoRepository<User, String> {
    
    public Optional<User> findOneByTwitterId(String twitterId);

}
  

Затем вы можете проверить, есть ли значение в необязательном.

Конечно, есть множество других решений. Вы также можете написать запрос, чтобы подсчитать, сколько пользователей имеют этот идентификатор Twitter

Комментарии:

1. К вашему сведению: поскольку вы расширяете MongoRepostiry, вам не нужно использовать @Repostitory , а тип _id является ObjectId . Итак, MongoRepository<User, ObjectId>. И нет необходимости использовать findOneBy…. просто используйте existsByTwitterId(String twitterId)