mongooperation和mongotemplate query有什么区别

编程记录(1)
这个问题已经困扰了几天了,每次查到的结果都是使用Query query = new Query();query.with(Sort……),但是我的文件里面就是找不到with这个方法,但有其他的方法。查了很久,终于查到了这个:& 把源码写上了。也是用于的Spring MongoTemplate里面方法。对比了一下,发现是引用的包不一样,大概就这点差别。
& & & & 我的包:&span style=&white-space:pre&& &/span&org.springframework.data.document.mongodb.MongoTemplate 别人引用的是&span style=&white-space:pre&& &/span&org.springframework.data.mongodb.core.MongoTemplate
后来又搜索发现这篇文档里面说的
& & &&注意:官方文档和案例配置都是旧版本的配置案例,spring-data-mongo从1.0.0.M1到1.0.0.M3的版本叫做Spring Data Document。1.0.0.M4开始更名为Spring
Data MongoDB 1.0.0 M4,不过官网并没有特别说明,乍一看有点莫名其妙,尤其是MongoTemplate从org.springframework.data.document.mongod移动到org.springframework.data.mongodb.core,官网的HelloWorldExample却还是用org.springframework.data.document.mongodb做配置案例。多少会导致使用时的误导。&
& & & & 发现问题就是包的引用问题。然后就按照他上面的配置。添加pom.xml中的引用,我只改了这几项:
&!-- mongodb --&
&dependency&
&span style=&white-space:pre&& &/span&
&groupId&org.mongodb&/groupId&
&span style=&white-space:pre&& &/span& &artifactId&mongo-java-driver&/artifactId&
&span style=&white-space:pre&& &/span& &version&2.10.1&/version&
&span style=&white-space:pre&& &/span&
&type&jar&/type&
&span style=&white-space:pre&& &/span&
&scope&compile&/scope&
&span style=&white-space:pre&& &/span&&/dependency&
&dependency&
&groupId&org.springframework.data&/groupId&
&artifactId&spring-data-mongodb&/artifactId&
&version&1.2.1.RELEASE&/version&
&type&jar&/type&
&scope&compile&/scope&
&/dependency&
然后把之前的mongo配置的包取消BuildPath。
然后就开始改错了……
开始的时候只是改了spring-mongodb.xml里面的配置mongoTemplate的引入的包,出现了各种错误;
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'HOST_MONITOR_HOST_DaoImpl': Injection of autowired nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.data.document.mongodb.MongoTemplate com.nari.dao.host.HOST_MONITOR_HOST_DaoImpl.mongoT nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.data.document.mongodb.MongoTemplate] found for dependency: expected at least 1 bean which qualifies as autowire candidate for
this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
& & & &发现是mongoTemplate中的参数配置错误。
& & & 现在贴配置spring-mongodb.xml代码:修改后的
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns:p=&http://www.springframework.org/schema/p&
xmlns:context=&http://www.springframework.org/schema/context&
xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:tx=&http://www.springframework.org/schema/tx&
xmlns:mongo=&http://www.springframework.org/schema/data/mongo&
xsi:schemaLocation=&
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd&&
&!-- 搜索需要注解的文档 --&
&context:component-scan base-package=&com.nari.dao,com.nari.dao.host& /&
&!-- 引入mongodb属性文件 --&
&mongo:mongo host=&localhost& port=&27017&/&
&bean id=&mongoTemplate& class=&org.springframework.data.mongodb.core.MongoTemplate&&
&!-- 两个constructor-arg为mongTemplate进行实例化的构造函数,如果不知道添加哪个参数,可点击MongoTemplate查看源代码 --&
&constructor-arg name=&mongo& ref=&mongo&/&
&constructor-arg name=&databaseName& value=&NARI_MONITOR_2015_07&/&
&context:annotation-config /&
& 后来又删除了几个spring-data-common.jar包,如果包冲突则还是会提示构造参数错误。
然后就是排序的代码,就和其他贴吧上写的一样了。
public List&Person& sortByAge() {
// TODO Auto-generated method stub
Query query = new Query();
query.with(new Sort(new Order(Direction.DESC,&age&)));
List&Person& li = this.mongoTemplate.find(query, Person.class, &person&);
还在继续学习中,积累的经验就是:
看错误日志,主要看caused by 这些,然后对应代码,查看源代码;
配置文件出错首先要检查构造参数是否与要求的一致;
查看拼写是否错误;
查看类型是否匹配。
接下来在继续学习MongoTemplate的其他用法了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:979次
排名:千里之外用mongoTemplate向mongo-中国学网-中国IT综合门户网站
> 信息中心 >
用mongoTemplate向mongo
来源:互联网 发表时间: 17:26:26 责任编辑:李志喜字体:
为了帮助网友解决“用mongoTemplate向mongo”相关的问题,中国学网通过互联网对“用mongoTemplate向mongo”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:用mongoTemplate向mongoDB插入数据,怎么才能不带_class字段,如图,具体解决方案如下:解决方案1:MongoDB能够使用BSON。BSON是一个轻量级的二进制数据格式,它的表现形式就是我们常说的BSON(Binary JSON )。当Client端要将写入文档,需要将文档编码为BSON格式。同样在MongoDB中,然后再发送给Server端。所有的Client端(各种语言的Driver)都会使用这种抽象,使用查询等等操作时,并将BSON作为数据的存储存放在磁盘中,Server端的返回结果也是编码为BSON格式再放回给Client端的,文档是对数据的抽象,它被使用在Client端和Server端的交互中
1个回答1个回答1个回答1个回答1个回答1个回答1个回答2个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 mongotemplate sort 的文章

 

随机推荐