thinkjs——修改where默认条件为or

写之前,得先反思一下:总以为大神同事的高冷是一种与大家格格不入的节奏,可是当自己遇到的问题难以解决的时候,大神同事一下子就让问题迎刃而解,于是,满眼的敬佩之感:一定努力当一个像大神同事一样的programmer!

进入正题:

一直以来工作中,使用的都是nodejs中的thinkjs框架,基本上做的也是后台 数据的增删改查,类似的流程,似乎让自己忽略了其中的一些小秘密,于是今天就碰见了这个坑:

这是在model中写的where查询条件,官网是这样子解释的:

model.where(where)
•where {String | Object} where 条件
•return {this} 

设置 where 查询条件。可以通过属性 _logic 设置逻辑,默认为 AND。可以通过属性 _complex 设置复合查询。

注:1、以下示例不适合 mongo model,mongo 中设置 where 条件请见 model.mongo 里的 where 条件设定。2、where 条件中的值需要在 Logic 里做数据校验,否则可能会有漏洞。

意思也就是像前面的条件中,它只会默认执行所有and条件,即并列在一起执行,但是我的实际想要的需求却是框中的三个条件并非and而是or查询,在前台页面中它只是一个名称输入框,输入的值(数据库对应name字段)传到后台,这个值便要进行三项查询:name,pinyin,zimu,可是上面的写法,它永远都不会进入到第二个以及的三个条件,自己看了很长时间,最终是知道了sql语句执行有误,但是得把where默认的and条件随意的转化成自己想要的or选择条件,就有点小困难了。从官网中,我知道了where有个方法可以设置复合查询,但是_logic的数据结构是个对象,对于这个写法,自己试了好多种,或许真的是导航太浅,

红色的框里是自己试了好多遍的错误案例,而绿色框中是经过大神同事指点过的完美条件,那一瞬间,真的对自己无语了。差一点的失误也是不成功的!

实际上,logic的用法是这样的,后面的参数是一个对象:

时间: 2024-10-05 14:26:08

thinkjs——修改where默认条件为or的相关文章

question --> maven assembly plugin 修改文件默认权限

使用maven assembly plugin插件添加执行脚本时,发现默认权限为644,还需要手动添加执行权限.这很麻烦,于是查看文档 官方文档 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_fileSet fileMode String Similar to a UNIX permission, sets the file mode of the files included. THIS IS

Linux下使用MySQL——忘记root密码及修改MySQL默认编码

概述: 本博客不再对MySQL的语法进行讲解和说明,想了解或熟悉的朋友请自行百度或Google学习.本博客主要是针对MySQL除语法之外的总结,希望能够也能帮助到你. 1.CentOS6.x下MySQL忘记root密码解决方法 Ⅰ. 修改MySQL的登录设置 # vim /etc/my.cnf 在[mysqld]段中加上一句:skip-grant-tables Ⅱ. 重启服务 # service mysqld restart Ⅲ. 登录Mysql,修改密码信息 # mysql mysql> US

修改mysql默认字符集

(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,ubuntu下mysql的配置文件是在 /etc/mysql/my.cnf下, 我是将这个文件复制到我的 /home/username文件夹下,重命名为 .my.cnf,这样即使配置出错,也不会影响数据库的正常运行 如: [client] default-character-set = utf8 [mysqld] character_set_server = utf8 修改完后,重启mysql的服务, sudo res

RHEL7.0修改SSH默认端口及SELinux运行状态修改

Linux系统安装好后,默认会开启SSH服务以便远程配置.但使用默认端口22不安全,一般不建议使用默认端口,那就需要修改SSH默认端口.在RHEL7.0上修改和7.0以下类似,但要注意SELinux的修改. SSH 为 Secure Shell,由IETF的网络工作小组(Network Working Group)所制定:SSH 是建立在应用层和传输层基础上的一种安全协议.SSH传输数据是加密的,可以有效防止传输过程被截取数据保障安全.SSH的数据是经过压缩的,所以可以加快传输的速度. 修改步骤

iOS7 修改导航系统默认返回按钮文字及颜色

//iOS7 修改系统默认返回按钮文字及颜色 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = item; [[UINavigationBar appearance] setTintColor:[UIColor

修改OpenSSL默认编译出的动态库文件名称

在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中加入预编译指令 #pragma comment (lib,”*.lib”).b) 显式的运行时链接.不使用 *.lib (导入库)文件,使用 Load Library(),GetProcAddress() 函数来加载动态库中的函数.要注意的是在导入库 lib 文件内部包含了其对应 dll 文件的名称

Linux下如何修改用户默认目录

Linux下默认的用户目录一般为/home/xxx(root用户除外),有些时候我们可能需要修改这个目录,下面我就给大家分享2中修改的方法 工具/原料 Linux操作系统 方法/步骤 1 1.切换到root用户,直接修改/etc/passwd文件,找到你的用户名你一行,如下图所示修改路径,然后保存即可. 2 2.切换到root用户,使用usermod命令,例如usermod -d /tmp test (test为你的用户名),使用该命令请确保该用户下没有运行的软件或进程 3 最后切换到普通账户,

修改Maven默认编译级别

创建Maven项目时,默认的编译级别是J2SE-1.5.这时,我们可能需要修改这个默认设置为当前项目的jdk版本.有两种方法: 1.修改Maven的settings.xml文件覆盖默认设置 在settings.xml文件中找到<profiles>标签,然后在此标签内部粘贴如下配置: <profile> <id>jdk-1.6</id> <activation> <jdk>1.6</jdk> </activation&

xampp修改mysql默认密码详解

在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql默认密码了. 大概过程 在mysql里设密码打开IE输入网址localhostphpadmin之后,点用户看到有root用户,往下拉,找到修改密码的地方,输入密码,进行执行操作,最后再去到在你的xampp安装目录下找到phpadmin文件夹,打开找到config.inc.php文件之后,打开找关于m