-
Notifications
You must be signed in to change notification settings - Fork 0
IC.DB
-
getCollection(clt_name,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
- 設定使用的 Collection names = [ name1, name2 , ......]
-
- 未編輯未編輯未編輯未編輯未編輯
-
- 未編輯未編輯未編輯未編輯未編輯
-
setData(clt_name,data_obj,onSuccess,onFail)
- 寫入一筆資料 ,資料不存在 會發生錯誤
-
getData(clt_name,query,onSuccess,onFail)
- 獲得一筆資料 (OBJCET)
-
updateData(clt_name,query,data_obj,onSuccess,onFail)
- 更新一筆資料 根據 query 條件
-
deleteData(clt_name,onSuccess,onFail,query_or_id)
- 未編輯未編輯未編輯未編輯未編輯
-
removeField(clt_name,query,field,onSuccess,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
incrementData(clt_name,query,change,onSuccess,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
count(clt_name,onSuccess,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
getArray(clt_name,onSuccess,onFail,query,condition,start,end)
- 獲得一個 ARRAY 資料
-
getPageBySkippingDocs(clt_name,query,opts,page_num,cb)
- 說明:使用
skip
方式取得一個page。根據MongoDB官方文件skip
的數量過大會造成效能瓶頸,此API只是做驗證,若需要分頁功能建議使用paginate
與getPage
,或getPageByReferDoc
。
- 說明:使用
-
getPageByReferDoc(clt_name,query,opts,refer_doc,cb)
- 說明:使用range-based pagination方式取得一個page。此為
paginate
及getPage
底層使用之API。目前因實作上的考量,排序寫死為新增至資料庫的時間由新到舊排序,若有特殊排序需求請提出討論。
- 說明:使用range-based pagination方式取得一個page。此為
-
paginate(name,clt_name,query,opts,cb)
- 說明:依照給予的query條件,事先找出各頁參考點,並命名為
name
,與getPage
搭配使用。注意,與name
相關的資料庫有任何更新時,必須再重新執行一次確保同步。頁數過多會耗費較多資源及時間,在此狀況下,若不需要事先分頁的功能,建議直接使用getPageByReferDoc
。
- 說明:依照給予的query條件,事先找出各頁參考點,並命名為
-
- 說明:根據
name
取得一個page。必須先呼叫paginate
建立name
。
- 說明:根據
-
updateArray(clt_name,query,data,onSuccess,onFail)
- 一次更新一整組 ARRAY
-
getCachedData(clt_name,onSuccess,onFail,query_item)
- 未編輯未編輯未編輯未編輯未編輯
-
syncCachedDataByID(clt_name,id,onSuccess,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
deleteCachedDataByID(clt_name,id,onSuccess,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
updateCachedDataByID(clt_name,id,new_values,onSuccess,onFail)
- 未編輯未編輯未編輯未編輯未編輯
-
initDB(dbSetting,collections,onDone)
- 未編輯未編輯未編輯未編輯未編輯
-
- 未編輯未編輯未編輯未編輯未編輯
-
- 未編輯未編輯未編輯未編輯未編輯
-
- 未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.getCollection(clt_name,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.useCollections(names)
設定使用的 Collection
-
傳入(input)
- names
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.addCollection(name,onDone)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- name
變數類型:
變數說明:
- onDone
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.toObjectID(s)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- s
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.setData(clt_name,data_obj,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- data_obj
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.getData(clt_name,query,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- query
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.updateData(clt_name,query,data_obj,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- query
變數類型:
變數說明:
- data_obj
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.deleteData(clt_name,onSuccess,onFail,query_or_id)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
- query_or_id
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.removeField(clt_name,query,field,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- query
變數類型:
變數說明:
- field
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.incrementData(clt_name,query,change,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- query
變數類型:
變數說明:
- change
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.count(clt_name,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.getArray(clt_name,onSuccess,onFail,query,condition,start,end)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
- query
變數類型:
變數說明:
- condition
變數類型:
變數說明:
- start
變數類型:
變數說明:
- end
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.getPageBySkippingDocs(clt_name,query,opts,page_num,cb)
使用skip
方式取得一個page。根據MongoDB官方文件skip
的數量過大會造成效能瓶頸,此API只是做驗證,若需要分頁功能建議使用paginate
與getPage
,或getPageByReferDoc
。
-
傳入(input)
-
傳出(callback)
-
cb(err, docs, last_doc)
-
err
變數類型:
Error Object
變數說明:若無發生錯誤則為
null
。 -
docs
變數類型:
Array
變數說明:Query資料庫所回傳的documents。
-
last_doc
變數類型:
Object
變數說明:當回傳的documents數量跟page size一樣為此頁最後一筆資料,否則為
null
。
-
-
-
回傳(return)
無
var page_size = 1000;
var page_num = 0;
var cb = function (err, docs, last_doc) {
if (err) {
console.log(err.toString());
}
else {
}
};
var q = {};
var opts = {
limit: page_size
};
IC.DB.getPageBySkippingDocs(IC.Settings.DB_NAME_SYS_EVENT, q, opts, page_num, cb);
---------------------------------------------------------------
###IC.DB.getPageByReferDoc(clt_name,query,opts,refer_doc,cb)
使用range-based pagination方式取得一個page。此為paginate
及getPage
底層使用之API。
-
傳入(input)
-
clt_name
變數類型:
String
變數說明:collection名稱。
-
query
變數類型:
Object
變數說明:參考MongoDB文件。
-
opts
變數類型:
Object
變數說明:主要設定
limit
屬性以限制一頁有多少筆資料(即page size),其餘參考MongoDB文件。 -
refer_doc
變數類型:
Object
變數說明:做為query參考點的document,使用
null
傳回第0頁,可使用cb
回傳的last_doc
再執行IC.DB.getPageByReferDoc(clt_name, query, opts, last_doc, cb)
獲得下一頁,直到last_doc
為null
。
-
-
傳出(callback)
-
cb(err, docs, last_doc)
-
err
變數類型:
Error Object
變數說明:若無發生錯誤則為
null
。 -
docs
變數類型:
Array
變數說明:Query資料庫所回傳的documents。
-
last_doc
變數類型:
Object
變數說明:當回傳的documents數量跟page size一樣為此頁最後一筆資料,否則為
null
。
-
-
-
回傳(return)
無
This is the implementation of paginate
.
var l_Pages = {};
exports.paginate = function (name, clt_name, query, opts, cb) {
l_Pages[name] = {
clt_name: clt_name,
query: query,
opts: opts,
refer_docs: [null]
};
var initReferDocs = function (err_getPageByReferDoc, docs, last_doc) {
if (err_getPageByReferDoc) {
var err = new Error(err_getPageByReferDoc.toString());
err.name = "paginate Error";
IC.Utility.safeCall(cb, err);
}
else {
if (last_doc) {
l_Pages[name].refer_docs.push(last_doc);
exports.getPageByReferDoc(clt_name, query, opts, last_doc, initReferDocs);
}
else {
if (docs.length === 0 ) {
l_Pages[name].refer_docs.pop();
}
IC.Utility.safeCall(cb, null);
}
}
};
exports.getPageByReferDoc(clt_name, query, opts, null, initReferDocs);
};
---------------------------------------------------------------
###IC.DB.paginate(name,clt_name,query,opts,cb)
依照給予的query條件,事先找出各頁參考點,並命名為name
,與getPage
搭配使用。注意,與name
相關的資料庫有任何更新時,必須再重新執行一次確保同步。頁數過多會耗費較多資源及時間,在此狀況下,若不需要事先分頁的功能,建議直接使用getPageByReferDoc
。
-
傳入(input)
-
傳出(callback)
-
cb(err)
-
err
變數類型:
Error Object
變數說明:若無發生錯誤則為
null
。
-
-
-
回傳(return)
無
var page_size = 1000;
var cb_paginate = function (err_paginate) {
if (err_paginate) {
console.log(err_paginate.toString());
}
else {
}
};
var q = {};
var opts = {
limit: page_size
};
IC.DB.paginate("SYS_LOG", IC.Settings.DB_NAME_SYS_EVENT, q, opts, cb_paginate);
---------------------------------------------------------------
###IC.DB.getPage(name,page_num,cb)
根據name
取得一個page,必須先呼叫paginate
建立name
。
-
傳入(input)
-
name
變數類型:
String
變數說明:經由
paginate
建立的名稱。 -
page_num
變數類型:
Number
變數說明:由0開始編號的頁碼。
-
-
傳出(callback)
-
cb(err, docs, last_doc)
-
err
變數類型:
Error Object
變數說明:若無發生錯誤則為
null
。 -
docs
變數類型:
Array
變數說明:Query資料庫所回傳的documents。
-
last_doc
變數類型:
Object
變數說明:當回傳的documents數量跟page size一樣為此頁最後一筆資料,否則為
null
。
-
-
-
回傳(return)
無
var page_num = Number(event.data.pn);
var cb_getPage = function (err_getPage, docs, last_doc) {
if (err_getPage) {
console.log(err_getPage.toString());
}
else {
}
};
IC.DB.getPage("SYS_LOG", page_num, cb_getPage);
---------------------------------------------------------------
###IC.DB.updateArray(clt_name,query,data,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- query
變數類型:
變數說明:
- data
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.getCachedData(clt_name,onSuccess,onFail,query_item)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
- query_item
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.syncCachedDataByID(clt_name,id,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- id
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.deleteCachedDataByID(clt_name,id,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- id
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.updateCachedDataByID(clt_name,id,new_values,onSuccess,onFail)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- clt_name
變數類型:
變數說明:
- id
變數類型:
變數說明:
- new_values
變數類型:
變數說明:
- onSuccess
變數類型:
變數說明:
- onFail
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.initDB(dbSetting,collections,onDone)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- dbSetting
變數類型:
變數說明:
- collections
變數類型:
變數說明:
- onDone
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.disposeDB(onDone)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- onDone
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.init(config,onDone)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- config
變數類型:
變數說明:
- onDone
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯
---------------------------------------------------------------
###IC.DB.dispose(onDone)
未編輯未編輯未編輯未編輯未編輯
-
傳入(input)
- onDone
變數類型:
變數說明:
-
傳出(output)
無
-
回傳(return)
無
未編輯未編輯未編輯未編輯未編輯