Bmob后端云官网:http://www.bmob.cn/

Bmob后端云微信小程序开发文档:http://docs.bmob.cn/data/wechatApp/b_developdoc/doc/index.html

Bmob是一个很好用的后端云平台,自己在开发小程序的过程中有用到,比较好用,免去了搭建服务器、配置数据库的烦恼,这也符合小程序即用即走的轻量型设计理念。特写一篇文章总结一下常用功能的用法,详细用法可以参看上面的开发文档。

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

添加一行数据到diary表中

下面的代码可以在远程创建一个名为'diary'的数据库表并插入一条数据,该表有两个字段:'title'和'content':

// 创建一个表对象
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();

随机推荐

  1. UTF8转换为GB编码gb2312转换为utf-8

    这个方法是用windows的字符集转换的,跟sybase 的unicode码表可能在某些符号上有差别,对于大部分字符来说,尤其是 汉字,应该不会有问题的,如果要求比较高的话,可以买sybase的 un ...

  2. 【BZOJ】2014: [Usaco2010 Feb]Chocolate Buying(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2014 这应该是显然的贪心吧,先排序,然后按花费取 #include <cstdio> # ...

  3. 【BZOJ】3314: [Usaco2013 Nov]Crowded Cows(单调队列)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3314 一眼就是维护一个距离为d的单调递减队列... 第一次写.....看了下别人的代码... 这一题 ...

  4. javascript基本语法和变量(转)

    转载来自 阮一峰老师的文章,地址为:http://javascript.ruanyifeng.com/grammar/basic.html#toc0 1.1语句 JavaScript 程序的执行单位是 ...

  5. Chem 3D软件可以改变背景吗

    化学绘图过程中常常需要绘制三维结构的图形,Chem 3D软件是ChemOffice套件中专门用于绘制三维结构的组件.用过它的用户会发现,其背景颜色通常都默认为深蓝色,但是不是每个场景都适合用深蓝色的背 ...

  6. Python 个人常用汇总

    Python 常用文件操作总结: 导入库路径:sys.path.append('/usr/local/lib/python2.7/site-packages') from random import ...

  7. django数据库设计

    1 知识点 主要是分析设计数据库的数据表和数据表字段,然后使用Navicat Data Modeler创建模 将sqlite数据库修改成mysql数据库,同步数据 2 模型 2.1 数据表所有的数据列 ...

  8. C#封装C++DLL(特别是char*对应的string)

    1.新建一个C#-Windows-类库(用于创建C#类库(.dll)的项目)类型的工程 2.对于普通C++函数 XXXX_API void cppFun(int i); 在cs代码中添加 [DllIm ...

  9. libevent(了解)

    1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...

  10. mac上用的svn

    Cornerstone是Mac上最佳的SVN管理工具 能破解最好,不会破解的表示mac的最新版本似乎对这款软件不太友好.