国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Query.js - 類SQL前端數據查詢類庫

MASAILA / 709人閱讀

摘要:使用實現的一個類的用于在前端查詢數據的類庫。通過內置鉤子函數對字段進行格式化。對數據集和查詢條件進行重置。銷毀實例靜態方法屬性添加自定義格式化鉤子函數鉤子名稱鉤子方法添加一個重置標題的鉤子函數我是格式化后的標題我是格式化后的標題版本號

使用JavaScript實現的一個類SQL的用于在前端查詢數據的類庫。基本接口參考了thinkphp查詢語法的實現。

Example Github 如何使用
// 支持 umd

var data = [] // 數據
var query = new Query(data)
實例方法 range
Description
[Parameter Collections] 從數據中選取一個從開始索引(start)到一個結束索引(end)之間的部分的淺拷貝出來作為目標對象,參數同Array.prototype.slice。多次調用以最后一次收集到的參數為準。
Syntax
/**
 * @param {Number} start
 * @param {Number} end 
 */
query.range(start, end)
Example
query.range(0, 10)
to/format
Description
[Parameter Collections] 通過內置鉤子函數(hooks)對字段進行格式化。
Document
內置鉤子函數(format hooks)
Syntax
/**
 * @param {String} field 待格式化字段
 * @param {String} type 鉤子函數名稱
 * @param {Object} options 可用配置項
 */
query.to(field, type, options) / query.format(field, type, options)
Example
// "createTime": "2017-09-08T15:26:03.896Z",
query.to("createTime", "date", {args: ["yy-MM-dd"], new: "date"})
// $date: "2017-09-08"
where
Description
[Parameter Collections] 條件查詢語句
Document
Syntax
/**
 * @param {String} field 字段
 * @param {String} expression 表達式
 * @param {String | Function} condition 條件
 * @param {String} relation {and(default) | or} 與上次where結果的關系
 */
query.where(field, expression, condition, relation)
Example
query
  .where("author", "eq", "smohan")
  .where([["title", "like", "javascript"], ["tags", "like", "javascript", "or"] ])
  .where("count.comments", "gt", 0)
// author === "smohan" && (title like "javascript" || tags like "javascript") && "count.comments > 0"     
group
Description
[Parameter Collections] 根據字段對結果集分組,返回新的結果集。一個字段只能分組一次。
Syntax
/**
 * @param {String} field 待分組的字段
 */
query.group(field)
Example
query.group("author")
/**
 * result
 * [
 *   "smohan": {count: 22, list:[...]},
 *   "流云諸葛": {count: 1, list: [...]},
 *   ...   
 * ]
 */     
skip
Description
[Parameter Collections] 用于分頁時指定開始查詢的起始行數。
Syntax
/**
 * @param {Number} skip 指定起始行數
 */
query.skip(skip)
Example
// 從第0行開始查詢
query.skip(0)     
limit
Description
[Parameter Collections] 用于分頁時指定查詢的數量。
Syntax
/**
 * @param {Number} limit 指定查詢的數量
 */
query.limit(limit)
Example
// 查詢10條結果
query.limit(10)
// 從第5條開始查詢10條結果
query.skip(5).limit(10)     
sort
Description
[Parameter Collections] 對查詢結果進行排序,輸出排序后的結果。
Syntax
/**
 * @param {String | Object} field 待排序的字段
 * @param {String | void} type 排序類型 [asc|desc]
 */
query.sort(field, type)
Example
// 按order的降序排序,如果order一樣,則再按照創建時間的降序排序
query
  .sort("order", "desc")
  .sort("createTime", "desc")

// 同時指定多個排序方式
query.sort({
  create_time: "desc",
  id: "desc",
  name: "asc"
})
count
Description
[Export results] 返回經過查詢后的結果的總數,如果需要分頁,建議在分頁前調用該方法。
Syntax
/**
 * @returns {Number}
 */
query.count()
Example
query.count()
find
Description
[Export results] 返回經過查詢后的結果集。
Syntax
/**
 * @returns {Array}
 */
query.find()
Example
query.find()
reset
Description
對數據集和查詢條件進行重置。一旦調用find()/count()方法后,目標集合將會被改變,此時如果需要對源數據進行重新查詢,需要調用該方法。
Syntax
query.reset()
Example
query.reset()
//.where()
//...
destroy
Description
銷毀實例
Syntax
query.destroy()
靜態方法/屬性 hooks
Description
[Static Method] 添加自定義格式化鉤子函數
Syntax
/**
 * @param {String} name 鉤子名稱
 * @param {function} handler 鉤子方法
 */
Query.hooks(name, handler)
Example
// 添加一個重置標題的鉤子函數
Query.hooks("myTitle", function(value) {
  return "我是格式化后的標題:" + value
})

// use
query.to("title", "myTitle", {new: true})
// result: 
// $title: "我是格式化后的標題:title"
version
Description
[Static Attribute] 版本號
Syntax
Query.version
Example Github

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95101.html

相關文章

  • nodejs如何簡潔優雅的訪問mysql數據

    摘要:如何簡潔優雅的訪問數據庫一前言誕生以來出現了一大批的框架如等等,前端可以不再依賴后端可以自己控制服務端的邏輯。今天我們就來說說前端在中如何操作數據庫。 nodejs如何簡潔優雅的訪問mysql數據庫一、前言nodejs誕生以來出現了一大批的web框架如express koa2 egg等等,前端可以不再依賴后端可以自己控制服務端的邏輯。今天我們就來說說前端在nodejs中如何操作mysq...

    jlanglang 評論0 收藏0
  • 貼一貼我的后端開發面試題

    摘要:線程有幾種狀態生命周期是怎樣的線程有五種狀態創建就緒運行阻塞死亡。當線程獲得到等待的資源資源或者引起阻塞的條件得到滿足時調用或,會從阻塞狀態進入就緒狀態。使用,允許最多個線程同時訪問資源。 轉載請注明出處: 貼一貼我的后端開發面試題。 本文是面試回寢室后憑記憶羅列出來的問題,大概90%的問題都在這里面了,有幾個問題的實在是想不起來了= =,有些問題自我感覺回答的不好,所以我是查了資料...

    Batkid 評論0 收藏0
  • Java 征途:行者的地圖

    摘要:老實說,當時一進入世界的大門就暈了,各種規范概念和英文縮寫詞能把人整的暈暈乎乎。等新的英文縮寫又出現了,一口老血還沒來得及噴出,又重新振作開始新的學習征程。 showImg(http://upload-images.jianshu.io/upload_images/1131767-1c5d16e39435df10.jpg?imageMogr2/auto-orient/strip%7Ci...

    dkzwm 評論0 收藏0

發表評論

0條評論

MASAILA

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<