来自SpringBoot MongoRepository的GeoQuery MongoDB

来自SpringBoot MongoRepository的GeoQuery MongoDB,mongodb,spring-boot,mongodb-query,spring-data-mongodb,mongorepository,Mongodb,Spring Boot,Mongodb Query,Spring Data Mongodb,Mongorepository,我正在尝试使用@Query注释从Spring Boot MongoRepository执行复杂的地理查询。 以下是我的文件: { "_id" : ObjectId("5e96c08322f74b00078cfff1"), "category" : "Services", "businessType" : "MyCommunityStore", &

我正在尝试使用@Query注释从Spring Boot MongoRepository执行复杂的地理查询。 以下是我的文件:

{
    "_id" : ObjectId("5e96c08322f74b00078cfff1"),
    "category" : "Services",
    "businessType" : "MyCommunityStore",
    "businessId" : "sin5e96c08322f74b00078cfff1",
    "promoted" : true,
    "banner" : true,
    "signed" : true,
    "geoLocation" : [ 
        -117.1264293, 
        32.9641416
    ]
}
我需要我的查询来执行以下任务:

  • 使用已升级的标志过滤所有文档“true”
  • 根据与给定点[x,y]的距离对这些文档进行排序
  • 有人能帮我写这个问题吗

    以下查询给出错误信息:

    { 'promoted':true, 'geoLocation' : { '$near' : [-117.1264293, 32.9641416], '$maxDistance' : 30.00}})
    
    错误日志跟踪: java.lang.IllegalArgumentException:点不能为null! 在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.java:157)~[spring-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-2.2.6.RELEASE.jar:2.2.6.RELEASE] 在org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605)~[spring-data-commons-2.2.6.RELEASE.jar:2.2.6.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(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.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE] 在org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(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.searchGeoLocationNear(未知源)~[na: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.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] 在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:163)~[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.procedue(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.searchGeoLocationNear(未知源)~[na:na] 在com.linkscreens.mycommunity.service.BusinessServiceImpl.getBannerDocuments(BusinessServiceImpl.java:261)~[classes/:na] 在com.linkscreens.mycommunity.controller.BusinessController.getBannerDocuments(BusinessController.java:77)~[classes/: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)~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.ServletinVaccableHandlerMethod.invokeAndHandle(ServletinVaccableHandlerMethod.java:105)~[spring-webmvc-5.2.5.RELEASE.jar: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] 位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapte