Mon go хранилище findByDateBefore не возвращает результаты - PullRequest
0 голосов
/ 12 марта 2020

Я хочу запросить коллекцию mon go, чтобы получить документы, созданные до указанной даты. Я использую запрос MongoRepository findByDateBefore(). Но оказывается, он не возвращает никаких записей. Вот моя реализация кода (псевдо): Модель MyDocument

@Document(collection = "mydocument")
public class MyDocument {
   @Id
   String name;
   Date creationDate;
}

Репозиторий:

@Repository
public interface MyDocumentRepository extends MongoRepository<MyDocument, String> {
   List<MyDocument> findByCreationDateBefore(Date date);

   // @Query("{'creationDate': {"$lt": ?0}}")
   // List<MyDocument> findbyCreationDateBefore(Date date)
}

Сервисный код:

java.util.Date today = new Date();
List<MyDocument> documents = myDocumentRepository.findByCreationDateBefore(today);

Запрос, зарегистрированный после вызова службы :

MongoTemplate: find using query: { "creationDate" : { "$lt" : { "$date" : "2020-03-12T13:17:23.784Z"}}} fields: null for class: class com.myrepo.model.MyDocument in collection: mydocument

Этот результат не дал результатов. Я попытался использовать пользовательский запрос (закомментированный код в хранилище), который также не возвращает никаких записей. Также я попытался запустить зарегистрированный запрос в консоли mon go, и он не возвращает никаких результатов: { "creationDate" : { "$lt" : { "$date" : "2020-03-12T13:17:23.784Z"}}}
Но когда я использую новую дату, в консоли mon go он работает нормально. Например: { "creationDate" : { "$lt" : new Date("2020-03-12T13:17:23.784Z")}}.

Упомянутые решения здесь у меня не работает.

...