#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)