$微信小程序开发实践点滴——Bmob常用API的使用
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();
随机推荐
- UTF8转换为GB编码gb2312转换为utf-8
这个方法是用windows的字符集转换的,跟sybase 的unicode码表可能在某些符号上有差别,对于大部分字符来说,尤其是 汉字,应该不会有问题的,如果要求比较高的话,可以买sybase的 un ...
- 【BZOJ】2014: [Usaco2010 Feb]Chocolate Buying(贪心)
http://www.lydsy.com/JudgeOnline/problem.php?id=2014 这应该是显然的贪心吧,先排序,然后按花费取 #include <cstdio> # ...
- 【BZOJ】3314: [Usaco2013 Nov]Crowded Cows(单调队列)
http://www.lydsy.com/JudgeOnline/problem.php?id=3314 一眼就是维护一个距离为d的单调递减队列... 第一次写.....看了下别人的代码... 这一题 ...
- javascript基本语法和变量(转)
转载来自 阮一峰老师的文章,地址为:http://javascript.ruanyifeng.com/grammar/basic.html#toc0 1.1语句 JavaScript 程序的执行单位是 ...
- Chem 3D软件可以改变背景吗
化学绘图过程中常常需要绘制三维结构的图形,Chem 3D软件是ChemOffice套件中专门用于绘制三维结构的组件.用过它的用户会发现,其背景颜色通常都默认为深蓝色,但是不是每个场景都适合用深蓝色的背 ...
- Python 个人常用汇总
Python 常用文件操作总结: 导入库路径:sys.path.append('/usr/local/lib/python2.7/site-packages') from random import ...
- django数据库设计
1 知识点 主要是分析设计数据库的数据表和数据表字段,然后使用Navicat Data Modeler创建模 将sqlite数据库修改成mysql数据库,同步数据 2 模型 2.1 数据表所有的数据列 ...
- C#封装C++DLL(特别是char*对应的string)
1.新建一个C#-Windows-类库(用于创建C#类库(.dll)的项目)类型的工程 2.对于普通C++函数 XXXX_API void cppFun(int i); 在cs代码中添加 [DllIm ...
- libevent(了解)
1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...
- mac上用的svn
Cornerstone是Mac上最佳的SVN管理工具 能破解最好,不会破解的表示mac的最新版本似乎对这款软件不太友好.