GeoQuery MongoDB из SpringBoot MongoRepository

Я пытаюсь выполнить сложный GeoQuery из Spring Boot MongoRepository с использованием аннотации @Query. Ниже мой документ:

{
    "_id" : ObjectId("5e96c08322f74b00078cfff1"),
    "category" : "Services",
    "businessType" : "MyCommunityStore",
    "businessId" : "sin5e96c08322f74b00078cfff1",
    "promoted" : true,
    "banner" : true,
    "signed" : true,
    "geoLocation" : [ 
        -117.1264293, 
        32.9641416
    ]
}

Мне нужен мой запрос для выполнения следующих задач:

  1. Отсортируйте эти документы по расстоянию от заданной точки [x, y]
  2. Тип возврата моего метода репозитория был GeoResults, и у него не было аргумента метода типа Point. Изменение типа возврата на Список сработало.

Может ли кто-нибудь помочь мне с написанием этого запроса?

Следующий запрос выдает ошибку:

{ 'promoted':true, 'geoLocation' : { '$near' : [-117.1264293, 32.9641416], '$maxDistance' : 30.00}})

Отфильтруйте все документы с помощью повышенного флага true.


person Gautam kapoor    schedule 08.10.2020    source источник


Ответы (1)


Журнал ошибок: java.lang.IllegalArgumentException: точка не должна быть нулевой! в org.springframework.util.Assert.notNull (Assert.java:198) ~ [spring-core-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.data.mongodb.core.query. NearQuery. (NearQuery.java:193) ~ [spring-data-mongodb-2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.mongodb.core.query.NearQuery.near (NearQuery. java: 254) ~ [spring-data-mongodb-2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.mongodb.core.query.NearQuery.near (NearQuery.java:237) ~ [spring-data-mongodb-2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.mongodb.repository.query.MongoQueryExecution $ GeoNearExecution.doExecuteQuery (MongoQueryExecution) ~ [spring:15 data-mongodb-2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.mongodb.repository.query.MongoQueryExecution $ GeoNearExecution.execute (MongoQueryExecution.java:149) ~ [spring-data-mongodb -2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.mongodb.repository.query.AbstractMongoQuery.doExecute (AbstractMongoQuery.java:126) ~ [ spring-data-mongodb-2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.mongodb.repository.query.AbstractMongoQuery.execute (AbstractMongoQuery.java:101) ~ [spring-data-mongodb -2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.doInvoke (RepositoryFactorySupport.java:618) ~ [spring-data-commons 6.RELEASE.jar: 2.2.6.RELEASE] в org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.invoke (RepositoryFactorySupport.java:605) ~ [spring-data-commons- .jar: 2.2.6.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org .springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke (DefaultMethodInvokingMethodInterceptor.java:80) ~ [spring-data-commons-2.2.6.RELEASE.jar: 2.2.6.RELEASE] в org.soping.frame ramework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.aop.interceptor.ExposeInvocationInterposeInterceptor. ) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) ~ [spring-aop-5. 2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:212) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE ] at com.sun.proxy. $ Proxy97.searchGeoLocationNear (Неизвестный источник) ~ [na: na] at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) ~ [na: 1.8.0_265] at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_265] в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_265] в java.lang.reflect.Method.invoke (Method.invoke .java: 498) ~ [na: 1.8.0_265] в org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection (AopUtils.java:344) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5. RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint (ReflectiveMethodInvocation.java:198) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в orframe.soping.frame.frame.frame. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:16 3) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor.java:139) ~ [spring-tx-5.2.5 .RELEASE.jar: 5.2.5.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:186) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:212) ~ [spring-aop-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в com.sun.proxy. $ Proxy97.searchationNearoLeoL (Неизвестный источник) ~ [na: na] в com.linkscreens.mycommunity.service.BusinessServiceImpl.getBannerDocuments (BusinessServiceImpl.java:261) ~ [классы /: na] в com.linkscreens.mycommunity.controller.BusinessController.getBannerDocuments (BusinessController .java: 77) ~ [классы /: na] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_265] в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 62) ~ [na: 1.8.0_265] в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_265] в java.lang.reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_265] в org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:190) ~ [spring-web-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest (InvocableHandlerMethod.java:138) ~ [весна-веб-5. 2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:105) ~ [Spring-webmaster.java:105) ~ [spring-webmaster.java:105) : 5.2.5.RELEASE] в org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:879) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5.RELEASE.jar RELEASE] в org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:793) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:87) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.servlet. .doDispatch (DispatcherServlet.java:1040) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.ja va: 943) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:1006) ~ [spring-webmvc-5.2 .5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:898) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5. RELEASE] в javax.servlet.http.HttpServlet.service (HttpServlet.java:634) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.springframework.web.servlet.FrameworkServlet.service ( FrameworkServlet.java:883) ~ [spring-webmvc-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в javax.servlet.http.HttpServlet.service (HttpServlet.java:741) ~ [tomcat-embed-core -9.0.33.jar: 9.0.33] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org .apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.tomcat.websocket.server.WsFilter.doFi lter (WsFilter.java:53) ~ [tomcat-embed-websocket-9.0.33.jar: 9.0.33] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed -core-9.0.33.jar: 9.0.33] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:100) ~ [spring-web-5.2.5.RELEASE.jar: 5. 2.5.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:119) ~ [spring-web-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.apache.catalina. core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:93) ~ [spring-web-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:119) ~ [spring-web-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.apache. catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java ) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.springframew ork.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:201) ~ [spring -web-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.springframework.web.filter.OncePerRedoquestFilter (OncePerRedoquestFilter. .java: 119) ~ [spring-web-5.2.5.RELEASE.jar: 5.2.5.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed- core-9.0.33.jar: 9.0.33] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:202) ~ [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve .java: 96) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:541) [tomcat-embed-core-9.0. 33.jar: 9.0.33] в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.ja va: 139) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:92) [tomcat-embed-core-9.0.33 .jar: 9.0.33] в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:74) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.catalina. connector.CoyoteAdapter.service (CoyoteAdapter.java:343) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:373) [tomcat -эмбед-сердечник-9. 0.33.jar: 9.0.33] в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:868) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1594 ) [tomcat-embed-core-9.0.33.jar: 9.0.33] в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) [tomcat-embed-core-9.0.33. jar: 9.0.33] в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) [na: 1.8.0_265] в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. na: 1.8.0_265] в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) [tomcat-embed-core-9.0.33.jar: 9.0.33] на java.lang .Thread.run (Thread.java:748) [na: 1.8.0_265]

person Gautam kapoor    schedule 08.10.2020