Bmob后端云官網(wǎng):http://www.bmob.cn/
Bmob后端云微信小程序開發(fā)文檔:http://docs.bmob.cn/data/wechatApp/b_developdoc/doc/index.html
Bmob是一個(gè)很好用的后端云平臺(tái),自己在開發(fā)小程序的過程中有用到,比較好用懦尝,免去了搭建服務(wù)器毁欣、配置數(shù)據(jù)庫的煩惱尸饺,這也符合小程序即用即走的輕量型設(shè)計(jì)理念炕淮。特寫一篇文章總結(jié)一下常用功能的用法鹏秋,詳細(xì)用法可以參看上面的開發(fā)文檔。
在小程序中使用Bmob后端云的前提是要先接入Bmob滤否,接入方法請(qǐng)參見我的另一篇博文。
添加一行數(shù)據(jù)到diary表中
下面的代碼可以在遠(yuǎn)程創(chuàng)建一個(gè)名為'diary'的數(shù)據(jù)庫表并插入一條數(shù)據(jù)最仑,該表有兩個(gè)字段:title
和content
:
// 創(chuàng)建一個(gè)表對(duì)象
var Diary = Bmob.Object.extend('diary');
// 創(chuàng)建一個(gè)表記錄對(duì)象
var diary = new Diary();
// 插入字段數(shù)據(jù)
diary.set('title','hello');
diary.set('content','hello world!');
// 保存數(shù)據(jù)到遠(yuǎn)程數(shù)據(jù)庫
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);
}
});
根據(jù)ID查詢單條數(shù)據(jù)
var Diary = Bmob.Object.extend('diary');
// 創(chuàng)建一個(gè)查詢對(duì)象
var query = new Bmob.Query(Diary);
// 要查詢的記錄的ID
var id = '4ecdf7a';
// 查詢
query.get(id,{
success:function(result){
console.log('標(biāo)題為:' + result.get('title'));
},
error:function(object,error){
console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
}
});
修改一條數(shù)據(jù)
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);
}
});
刪除一條數(shù)據(jù)
var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);
// 要?jiǎng)h除的記錄的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 + '條數(shù)據(jù)');
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);
}
})
分頁查詢
// 設(shè)置起始位置
query.skip(10);
// 設(shè)置查詢個(gè)數(shù)
query.limit(10);
對(duì)查詢結(jié)果排序
// 對(duì)結(jié)果按照'title'字段升序排列
query.ascending('title');
// 對(duì)結(jié)果按照'title'字段降序排列
query.descending('title');
查詢某個(gè)字段是特定幾種取值
query.containedIn('title',['hello','hi','hey']);
查詢指定列
query.select('title');
query.find().then(function(results){
...
});
查詢字符串字段以某個(gè)子串開頭
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){
...
}
});
查詢滿足條件的記錄的數(shù)量
query.count({
success:function(count){
console.log('共查詢到了' + count + '條數(shù)據(jù)');
},
error:function(error){
...
}
});
Bmob對(duì)象的默認(rèn)屬性
obj.id
obj.createdAt
obj.updatedAt
支持的常見數(shù)據(jù)類型
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();