使用SpringMVC + MongoDB时,用or条件匹配关键字时遇到的问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SpringMVC + MongoDB时,用or条件匹配关键字时遇到的问题?相关的知识,希望对你有一定的参考价值。
public <T> List<T> queryCommunityByKeyword(String keyword, Integer page, Integer pageSize)
Query query = new Query();
query.addCriteria(Criteria.where("communityName").regex(keyword)
.orOperator(Criteria.where("announcement").regex(keyword)
.orOperator(Criteria.where("remark").regex(keyword))))
.skip( (page - 1) * pageSize).limit(pageSize);//分页
System.out.println(query);
List<SmsCommunity> list = mongoTemplate.find(query, SmsCommunity.class);
if(list == null || list.size() < 1)
return null;
return (List<T>) list;
以上是接口的实现代码;
Query: "communityName" : "$regex" : "车" , "$or" : [ "announcement" : "$regex" : "车" , "$or" : [ "remark" : "$regex" : "车"]], Fields: null, Sort: null
以上是后台打印的查询语句;
我要的效果是(Oracle):
SELECT * FROM tbl_name WHERE communityName LIKE ? OR announcement LIKE ? OR remark LIKE ?
可是上面的mongoTemplate代码查出来的不是这样的,后面两个or的条件直接被忽略了.
下面是我用到的spring整合mongodb的包:
import org.springframework.data.mongodb.core.MongoTemplate;
自己已经解决了,另申请一个号给回答了吧
使用SpringMVC + MongoDB时,用or条件匹配关键字时遇到的问题如下:
在使用SpringMVC框架时,配置web.xml文件时,springDispatcherServlet的配置:
可以看到servlet过滤的是所有的请求url,因此当浏览器在访问css、js、image等静态资源时也需要通过验证是否已经有相关的映射,如果没有则无法访问到(有时可能会觉得是路径配置不对,但是你会发现无论怎么改路径都访问不到),比如你在controller里注解了一个请求的 url,那么你就可以访问到你想获取的资源或者页面,但是静态资源时没有注解的,所以当你在页面上使用css或者引入js文件时就无法访问。
解决方法:
1、添加默认的servlet-mapping :
2、将你所需要访问静态资源添以通配符的形式加到web.xml的servlet-mapping中,就可以轻松地访问到你精心设计的js和css了。
参考技术A 代码如下:Query query = new Query();
Criteria cr = new Criteria();
query.addCriteria(cr.orOperator(
Criteria.where("communityName").regex(keyword)
,Criteria.where("communityName").regex(keyword)
,Criteria.where("remark").regex(keyword)
));
打印的SQL语句如下:
Query: "$or" : [ "communityName" : "$regex" : "俗" , "communityName" : "$regex" : "俗" , "remark" : "$regex" : "俗"], Fields: null, Sort: null本回答被提问者采纳 参考技术B 卧槽,楼主你这个怎么解决的啊?
用Node.JS+MongoDB搭建个人博客(安装环境)
Node.JS是什么?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js是由C++开发的,其实是一个JS运行环境,可以让JavaScript运行在服务器上。
安装环境
安装Node.JS和NPM
首先进入NodeJS官网选择自己对应的系统下载最新版,我现在用的是window64位系统,所以选择了window64位版的msi文件。下载完成后安装
安装成功后检查是否安装成功,打开命令行输入以下代码查看版本号:
node -v
npm -v
有该提示版本号代表node和NPM环境已经安装完毕
安装MongoDB数据库
首先进入MongoDB官网选择自己对应的系统下载最新版,我现在用的是window64位系统,所以选择了window64位版的msi文件。下载完成后安装
next
在D盘中新建一个文件夹MongoDB,改变安装路径到D盘下的MongoDB文件夹下。
安装完成后要设置环境变量才能运行MongoDB
如何设置环境变量?
我的电脑-右键属性-高级系统设置-高级-环境变量
在PATH里的npm环境变量后面加个分号; 然后加上刚才所安装的路径 D:\\MongoDB\\bin 确定后就安装完毕了。
测试运行MongoDB
输入以下代码查看MongoDB版本号
mongod -v
这样可以清晰的看到db version v3.2.10
现在环境已经全部安装成功准备待发。
以上是关于使用SpringMVC + MongoDB时,用or条件匹配关键字时遇到的问题?的主要内容,如果未能解决你的问题,请参考以下文章
无法查询 findOne - SpringMVC MongoDB