从 mongodb 服务器检索数据时遇到错误

sha*_*hah 1 java rest mongodb spring-boot postman

服务器成功启动并且也接受数据,但是当我检索数据时出现以下错误:

oaccC[.[.[/].[dispatcherServlet] :路径 [] 上下文中 servlet [dispatcherServlet] 的 Servlet.service()
抛出异常 [请求处理失败;嵌套异常是
org.springframework.data.mongodb.UncategorizedMongoDbException:查询失败,错误代码为 2,错误
消息“Field 'locale' is invalid in: { locale: "Tax" }' on server localhost:27017; 嵌套异常是
com.mongodb.MongoQueryException:查询失败,错误代码 2 和错误消息 'Field 'locale' is
invalid in: { locale: "Tax" }' on server localhost:27017] 根本原因

com.mongodb.MongoQueryException:查询失败,错误代码为 2,错误消息“Field 'locale' is
invalid in: { locale: "Tax" }' on server localhost:27017

在 com.mongodb.internal.operation.FindOperation$1.call(FindOperation.java:635) ~[mongodb-driver- core- 4.0.5.jar:na] 在 com.mongodb.internal.operation.FindOperation$1.call( FindOperation.java:625) ~[mongodb-driver-core-4.0.5.jar:na] 在 com.mongodb.internal.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:462) ~[mongodb-driver-core-4.0 .5.jar:na] 在 com.mongodb.internal.operation.FindOperation.execute(FindOperation.java:625) ~[mongodb-driver-core-4.0.5.jar:na] 在 com.mongodb.internal.operation .FindOperation.execute(FindOperation.java:77) ~[mongodb-driver-core-4.0.5.jar:na] 在 com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:190) ~[ mongodb-driver-sync-4.0.5.jar:na] 在 com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:135) ~[mongodb-driver-sync-4.0.5.jar:na] 在com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92) ~[mongodb-driver-sync-4.0.5.jar:na] 在 org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate .java:2782) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] 在 org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2518) ~[ spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] 在 org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2500) ~[spring-data-mongodb-3.0 .3.RELEASE.jar:3.0.3.RELEASE] 在 org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:856) ~[spring-data-mongodb-3.0.3.RELEASE.jar: 3.0.3.RELEASE] 在 org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:383) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE ] 在 org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:205) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] 在 java.base /jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) ~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 在 java. base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na] ] 在 org.springframework.data.repository.core.support.ImplementationInitationMetadata.invoke(ImplementationInitationMetadata.java:72) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] 在 org.springframework .data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:382) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] 位于 org.springframework.data。 repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:205) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] 在 org.springframework.data.repository.core.support .RepositoryFactorySupport$ImplementationMethodExecutionInterceptor。调用(RepositoryFactorySupport.java:549)〜[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE]在org.springframework.aop.framework.ReflectiveMethodInitation.proceed(ReflectiveMethodInitation.java:186)〜 [spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:155) ~[spring-data-commons- 2.3.3.RELEASE.jar:2.3.3.RELEASE] 在 org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:130) ~[spring-data-commons-2.3.3.RELEASE .jar:2.3.3.RELEASE] 在 org.springframework.aop.framework.ReflectiveMethodInitation.proceed(ReflectiveMethodInitation.java:186) ~[spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org .springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] 位于 org.springframework.aop.framework.ReflectiveMethodInitation。继续(ReflectiveMethodInitation.java:186)〜[spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE]在org.springframework.aop.interceptor.ExposeInvocalInterceptor.invoke(ExposeInitationInterceptor.java:95)〜[spring -aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] 位于 org.springframework.aop.framework.ReflectiveMethodInspiration.proceed(ReflectiveMethodInitation.java:186) ~[spring-aop-5.2.8.RELEASE.jar: 5.2.8.RELEASE] 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 com.sun。 proxy.$Proxy58.findAll(未知来源) ~[na:na] 在 net.example.TaxEngine.Resources.TaxController.getTaxs(TaxController.java:31) ~[classes/:na] 在 java.base/jdk.internal .reflect.NativeMethodAccessorImpl.invoke0(本机方法) ~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 在 java.base/jdk。 Internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na] 在 org. springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.method.support.InvocableHandlerMethod .invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod. java:105)〜[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)〜 [spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc- 5.2.8.RELEASE.jar:5.2.8。发布] 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework。 web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java :943)〜[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE]在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)〜[spring-webmvc-5.2。 8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE ] 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:626) ~[tomcat-embed-core-9.0.37.jar:4.0.FR] 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet .java:883) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core- 9.0.37.jar:4.0.FR] 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter .java:53) ~[tomcat-embed-websocket-9.0.37.jar:9.0.37] 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core- 9.0.37.jar:9.0.37] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org. springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter .java:119) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed- core-9.0.37.jar:9.0.37] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:119) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat- embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.37.jar:9.0.37 ] 在 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 位于 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] 位于 org.apache。 catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166 )~[tomcat-embed-core-9.0.37.jar:9.0.37] 位于 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)~[tomcat-embed-core-9.0.37。 jar:9.0.37] 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina。 authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)〜[tomcat-embed-core-9.0.37.jar:9.0.37]在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)〜 [tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.connector。 CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) ~[tomcat -embed-core-9.0.37.jar:9.0.37] 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.37.jar:9.0.37]在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.util.net.NioEndpoint$ SocketProcessor.doRun(NioEndpoint.java:1589) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] 在 java.base/java .util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat- embed-core-9.0.37.jar:9.0.37] 在 java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)〜[tomcat-embed-core-9.0.37.jar:9.0.37]在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)〜 [tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.connector。 CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) ~[tomcat -embed-core-9.0.37.jar:9.0.37] 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.37.jar:9.0.37]在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.util.net.NioEndpoint$ SocketProcessor.doRun(NioEndpoint.java:1589) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] 在 java.base/java .util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat- embed-core-9.0.37.jar:9.0.37] 在 java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)〜[tomcat-embed-core-9.0.37.jar:9.0.37]在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)〜 [tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.catalina.connector。 CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) ~[tomcat -embed-core-9.0.37.jar:9.0.37] 在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.37.jar:9.0.37]在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.util.net.NioEndpoint$ SocketProcessor.doRun(NioEndpoint.java:1589) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] 在 java.base/java .util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat- embed-core-9.0.37.jar:9.0.37] 在 java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]na] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 java.base/java。 lang.Thread.run(Thread.java:835) ~[na:na]na] 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.37.jar:9.0.37] 在 java.base/java。 lang.Thread.run(Thread.java:835) ~[na:na]

税.java

package net.example.TaxEngine.Model;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collation = "Tax")
public class Tax {

    @Id
    private String Name;

    public String getName() {
        return Name;
    }
    
    

    public void setName(String name) {
        this.Name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

TaxRepo.java

    package net.example.TaxEngine.Repository;
    import org.springframework.data.mongodb.repository.MongoRepository;
    import net.example.TaxEngine.Model.Tax;

    public interface TaxRepo extends MongoRepository<Tax, String> {
         public Tax findByname(String Name);
    }
Run Code Online (Sandbox Code Playgroud)

税务控制器.java

   package net.example.TaxEngine.Resources;

   import java.util.List;

   import org.springframework.beans.factory.annotation.Autowired;
   import org.springframework.web.bind.annotation.GetMapping;
   import org.springframework.web.bind.annotation.PathVariable;
   import org.springframework.web.bind.annotation.PostMapping;
   import org.springframework.web.bind.annotation.RequestBody;
   // import org.springframework.web.bind.annotation.RequestParam;
   import org.springframework.web.bind.annotation.RestController;
   import net.example.TaxEngine.Model.Tax;
   import net.example.TaxEngine.Repository.TaxRepo;

   @RestController
   public class TaxController {
    
     @Autowired
    private TaxRepo Repo;
    
     @PostMapping("/addName")
     public String SaveName(@RequestBody Tax name) {
        Repo.save(name);
        
        return "Added Name:" +name.getName();
     }
    
     @GetMapping("/AllNames")
     public List<Tax> getTaxs(){
        return Repo.findAll();
     }
    
     @GetMapping("/message/[name]")
     public String getTax(@PathVariable String name) {
         return "Hello:" +Repo.findById(name);
     }
}
Run Code Online (Sandbox Code Playgroud)

TaxEngineApplication.java

package net.example.TaxEngine;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TaxEngineApplication {
    public static void main(String[] args) {
        SpringApplication.run(TaxEngineApplication.class, args);
     }
}
Run Code Online (Sandbox Code Playgroud)

应用属性:

 spring.data.mongodb.uri=mongodb://localhost:27017/test
Run Code Online (Sandbox Code Playgroud)

xii*_*vil 5

你的代码中有一个小错字:

@Document(collation = "Tax")
public class Tax {
Run Code Online (Sandbox Code Playgroud)

您正在使用collat​​ion,您应该使用collection来引用 Mongo db 中的数据结构。

@Document(collection = "Tax")
public class Tax {
Run Code Online (Sandbox Code Playgroud)

要了解排序规则,请查看 mongo官方文档