Я хочу запросить коллекцию 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")}}
.
Упомянутые решения здесь у меня не работает.