微信小程序開發實踐點滴——Bmob常用API的使用

Bmob后端云官網:http://www.bmob.cn/
Bmob后端云微信小程序開發文檔:http://docs.bmob.cn/data/wechatApp/b_developdoc/doc/index.html

Bmob是一個很好用的后端云平臺,自己在開發小程序的過程中有用到,比較好用,免去了搭建服務器、配置數據庫的煩惱,這也符合小程序即用即走的輕量型設計理念。特寫一篇文章總結一下常用功能的用法,詳細用法可以參看上面的開發文檔。

在小程序中使用Bmob后端云的前提是要先接入Bmob,接入方法請參見我的另一篇博文。

添加一行數據到diary表中

下面的代碼可以在遠程創建一個名為'diary'的數據庫表并插入一條數據,該表有兩個字段:titlecontent

// 創建一個表對象
var Diary = Bmob.Object.extend('diary');
// 創建一個表記錄對象
var diary = new Diary();

// 插入字段數據
diary.set('title','hello');
diary.set('content','hello world!');

// 保存數據到遠程數據庫
diary.save(null,{
    success:function(result){
        console.log('create success! data id is:' + result,id);
    },
    error:function(object,error){
        console.log('create failed! error code is:' + error.code + ', error message is:' + error.message);
    }
});

根據ID查詢單條數據

var Diary = Bmob.Object.extend('diary');
// 創建一個查詢對象
var query = new Bmob.Query(Diary);
// 要查詢的記錄的ID
var id = '4ecdf7a';

// 查詢
query.get(id,{
    success:function(result){
        console.log('標題為:' + result.get('title'));
    },
    error:function(object,error){
        console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
    }
});

修改一條數據

var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);
// 要修改的記錄的ID
var id = '4ecdf7a';

query.get(id,{
    success:function(result){
        result.set('title','a new title');
        result.set('content','hi,guy!');
        
        // 保存提交修改
        result.save();
    },
    error:function(object,error){
        console.log('update failed! error code is:' + error.code + ', error message is:' + error.message);
    }
});

刪除一條數據

var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);
// 要刪除的記錄的ID
var id = '4ecdf7a';

query.get(id,{
    success:function(object){
        object.destroy({
            success:function(deleteObject){
                console.log('刪除成功!');
            },
            error:function(object,error){
                console.log('delete failed! error code is:' + error.code + ', error message is:' + error.message);
            }
        });
    },
    error:function(object,error){
        console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
    }
});

批量刪除

Bmob.Object.destroyAll(objects);

按條件刪除

query.destroyAll({
    success:function(object){
        ...
    },
    error:function(error){
        ...
    }
});

條件查詢

var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);

query.equalTo('title','hello');
query.find({
    success:funciton(results){
        console.log('共查詢到' + results.length + '條數據');
        for(var i = 0;i < results.length;i++){
            var obj = results[i];
            console.log(obj.id + ':' + obj.get('title'));
        }
    },
    error:function(error){
        console.log('find failed! error code is:' + error.code + ', error message is:' + error.message);
    }
})

分頁查詢

// 設置起始位置
query.skip(10);
// 設置查詢個數
query.limit(10);

對查詢結果排序

// 對結果按照'title'字段升序排列
query.ascending('title');

// 對結果按照'title'字段降序排列
query.descending('title');

查詢某個字段是特定幾種取值

query.containedIn('title',['hello','hi','hey']);

查詢指定列

query.select('title');
query.find().then(function(results){
    ...
});

查詢字符串字段以某個子串開頭

query.startsWith('title','he');

或查詢

var q1 = new Bmob.Query(Diary);
q1.greaterThan('age',10);
var q2 = new Bomb.Query(Diary);
q2.lessThan('age',20);

var mainQuery = Bmob.Query.or(q1,q2);
mainQuery.find({
    success:function(results){
        ...
    },
    error:function(error){
        ...
    }
});

查詢滿足條件的記錄的數量

query.count({
    success:function(count){
        console.log('共查詢到了' + count + '條數據');
    },
    error:function(error){
        ...
    }
});

Bmob對象的默認屬性

obj.id
obj.createdAt
obj.updatedAt

支持的常見數據類型

var num = 42;
var string = 'hello';
var date = new Date();
var array = [string,num];
var object = {number:num,string:string};

var bigObj = new BigObject();
bigObj.set('myNumber',num);
bigObj.set('myString',string);
bigObj.set('myDate',date);
bigObj.set('myArray',array);
bigObj.set('myObject',object);
bigObj.set('myNull',null);

bigObj.save();
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,941評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,337評論 25 708
  • 昵稱:香妃 坐標:魔都 星座:處女座 交友誓言: 其實有趣就好啦~ 喜歡的音樂(top3): 楊千嬅《再見二丁目》...
    偲炎閱讀 1,534評論 57 29
  • backtracking in a glance 首先系統地介紹一下backtracking這個方法本質是建立在遞...
    dol_re_mi閱讀 6,280評論 0 10
  • 三年前的今天爺爺走了。那天天氣很好。 爺爺和奶奶是離退休干部。爺爺比奶奶大五歲,聽我爸說倆人是五七干校認識的,后來...
    花下醉閱讀 453評論 3 2