IC.DB - imonology/ImonCloud-Doc GitHub Wiki

IC.DB

rock mongo src

---------------------------------------------------------------

###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只是做驗證,若需要分頁功能建議使用paginategetPage,或getPageByReferDoc

變數說明

  • 傳入(input)

    • clt_name

      變數類型:String

      變數說明:collection名稱。

    • query

      變數類型:Object

      變數說明:參考MongoDB文件

    • opts

      變數類型:Object

      變數說明:主要設定limit屬性以限制一頁有多少筆資料(即page size),其餘參考MongoDB文件

    • 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_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。此為paginategetPage底層使用之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_docnull

  • 傳出(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)

    • name

      變數類型:String

      變數說明:隨意自訂的名稱,之後用於getPage

    • clt_name

      變數類型:String

      變數說明:collection名稱。

    • query

      變數類型:Object

      變數說明:參考MongoDB文件

    • opts

      變數類型:Object

      變數說明:主要設定limit屬性以限制一頁有多少筆資料(即page size),其餘參考MongoDB文件

  • 傳出(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)

範例

未編輯未編輯未編輯未編輯未編輯