thinkjs——修改where默認條件爲or

寫以前,得先反思一下:總覺得大神同事的高冷是一種與你們格格不入的節奏,但是當本身遇到的問題難以解決的時候,大神同事一會兒就讓問題迎刃而解,因而,滿眼的敬佩之感:必定努力當一個像大神同事同樣的programmer!node

進入正題:sql

一直以來工做中,使用的都是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 條件設定。2where 條件中的值須要在 Logic 裏作數據校驗,不然可能會有漏洞。

意思也就是像前面的條件中,它只會默認執行全部and條件,即並列在一塊兒執行,可是個人實際想要的需求倒是框中的三個條件並不是and而是or查詢,在前臺頁面中它只是一個名稱輸入框,輸入的值(數據庫對應name字段)傳到後臺,這個值便要進行三項查詢:name,pinyin,zimu,但是上面的寫法,它永遠都不會進入到第二個以及的三個條件,本身看了很長時間,最終是知道了sql語句執行有誤,可是得把where默認的and條件隨意的轉化成本身想要的or選擇條件,就有點小困難了。從官網中,我知道了where有個方法能夠設置複合查詢,可是_logic的數據結構是個對象,對於這個寫法,本身試了好多種,或許真的是導航太淺,框架

紅色的框裏是本身試了好多遍的錯誤案例,而綠色框中是通過大神同事指點過的完美條件,那一瞬間,真的對本身無語了。差一點的失誤也是不成功的!this

實際上,logic的用法是這樣的,後面的參數是一個對象:spa

相關文章
相關標籤/搜索