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

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

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

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

添加一行数据到diary表中

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

  1. // 创建一个表对象
  2. var Diary = Bmob.Object.extend('diary');
  3. // 创建一个表记录对象
  4. var diary = new Diary();
  5. // 插入字段数据
  6. diary.set('title','hello');
  7. diary.set('content','hello world!');
  8. // 保存数据到远程数据库
  9. diary.save(null,{
  10. success:function(result){
  11. console.log('create success! data id is:' + result,id);
  12. },
  13. error:function(object,error){
  14. console.log('create failed! error code is:' + error.code + ', error message is:' + error.message);
  15. }
  16. });

根据ID查询单条数据

  1. var Diary = Bmob.Object.extend('diary');
  2. // 创建一个查询对象
  3. var query = new Bmob.Query(Diary);
  4. // 要查询的记录的ID
  5. var id = '4ecdf7a';
  6. // 查询
  7. query.get(id,{
  8. success:function(result){
  9. console.log('标题为:' + result.get('title'));
  10. },
  11. error:function(object,error){
  12. console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
  13. }
  14. });

修改一条数据

  1. var Diary = Bmob.Object.extend('diary');
  2. var query = new Bmob.Query(Diary);
  3. // 要修改的记录的ID
  4. var id = '4ecdf7a';
  5. query.get(id,{
  6. success:function(result){
  7. result.set('title','a new title');
  8. result.set('content','hi,guy!');
  9. // 保存提交修改
  10. result.save();
  11. },
  12. error:function(object,error){
  13. console.log('update failed! error code is:' + error.code + ', error message is:' + error.message);
  14. }
  15. });

删除一条数据

  1. var Diary = Bmob.Object.extend('diary');
  2. var query = new Bmob.Query(Diary);
  3. // 要删除的记录的ID
  4. var id = '4ecdf7a';
  5. query.get(id,{
  6. success:function(object){
  7. object.destroy({
  8. success:function(deleteObject){
  9. console.log('删除成功!');
  10. },
  11. error:function(object,error){
  12. console.log('delete failed! error code is:' + error.code + ', error message is:' + error.message);
  13. }
  14. });
  15. },
  16. error:function(object,error){
  17. console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
  18. }
  19. });

批量删除

  1. Bmob.Object.destroyAll(objects);

按条件删除

  1. query.destroyAll({
  2. success:function(object){
  3. ...
  4. },
  5. error:function(error){
  6. ...
  7. }
  8. });

条件查询

  1. var Diary = Bmob.Object.extend('diary');
  2. var query = new Bmob.Query(Diary);
  3. query.equalTo('title','hello');
  4. query.find({
  5. success:funciton(results){
  6. console.log('共查询到' + results.length + '条数据');
  7. for(var i = 0;i < results.length;i++){
  8. var obj = results[i];
  9. console.log(obj.id + ':' + obj.get('title'));
  10. }
  11. },
  12. error:function(error){
  13. console.log('find failed! error code is:' + error.code + ', error message is:' + error.message);
  14. }
  15. })

分页查询

  1. // 设置起始位置
  2. query.skip(10);
  3. // 设置查询个数
  4. query.limit(10);

对查询结果排序

  1. // 对结果按照'title'字段升序排列
  2. query.ascending('title');
  3. // 对结果按照'title'字段降序排列
  4. query.descending('title');

查询某个字段是特定几种取值

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

查询指定列

  1. query.select('title');
  2. query.find().then(function(results){
  3. ...
  4. });

查询字符串字段以某个子串开头

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

或查询

  1. var q1 = new Bmob.Query(Diary);
  2. q1.greaterThan('age',10);
  3. var q2 = new Bomb.Query(Diary);
  4. q2.lessThan('age',20);
  5. var mainQuery = Bmob.Query.or(q1,q2);
  6. mainQuery.find({
  7. success:function(results){
  8. ...
  9. },
  10. error:function(error){
  11. ...
  12. }
  13. });

查询满足条件的记录的数量

  1. query.count({
  2. success:function(count){
  3. console.log('共查询到了' + count + '条数据');
  4. },
  5. error:function(error){
  6. ...
  7. }
  8. });

Bmob对象的默认属性

obj.id

obj.createdAt

obj.updatedAt

支持的常见数据类型

  1. var num = 42;
  2. var string = 'hello';
  3. var date = new Date();
  4. var array = [string,num];
  5. var object = {number:num,string:string};
  6. var bigObj = new BigObject();
  7. bigObj.set('myNumber',num);
  8. bigObj.set('myString',string);
  9. bigObj.set('myDate',date);
  10. bigObj.set('myArray',array);
  11. bigObj.set('myObject',object);
  12. bigObj.set('myNull',null);
  13. bigObj.save();

随机推荐

  1. 在同一台电脑上添加多个ssh key

    1.创建新的ssh key: ssh-keygen -t rsa -C "your_email@email.com" 然后让你输入新的文件名称,这里设置为new # 设置名称为En ...

  2. JSP页面之间传递参数的方法有哪些?

    JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接

  3. flask渲染模板

    Flask自身使用了jinja2模板,可以使用render_template()方法来渲染模板,只需要将模板名和关键字的参数传入. 该渲染模板的模块(views.py)会在 templates 文件夹 ...

  4. django用户认证系统——注册3

    用户注册就是创建用户对象,将用户的个人信息保存到数据库里.回顾一下 Django 的 MVT 经典开发流程,对用户注册功能来说,首先创建用户模型(M),这一步我们已经完成了.编写注册视图函数(V),并 ...

  5. Centos 虚拟机网络问题,网卡起不来,重启network服务失败

    拷贝了个虚拟机,有两个网卡,1个可以起来,另一个起不来.运行命令:$>systemctl restart network 输出如下:Job for network.service failed ...

  6. ef AddDays报错

    ef func写法,在语句中不能使用adddays方法 )); 这样写就是不行 可以改为: ); 下面是我的一个案例,虽然到了最后都没有实现功能! public List<ContractBud ...

  7. springmvc的一个错误

    初学ssm,碰到一个错误,非注解的就没错,注解的就错了 找了半天,终于发现错误,真的很傻比啊,导入的springframework版本不一致... 都导入4.3.18版本的即可...

  8. Leetcode-Test Justification

    Given an array of words and a length L, format the text such that each line has exactly L characters ...

  9. cocos2d-X学习之主要类介绍:CCDirector

    在cocos2d-x里面,游戏的任何时间,只有一个场景对象实例处于运行状态,该对象可以作为当前游戏内容的整体包对象 Cocos2d-x引擎除了提供了CCDirector,还提供了一个CCDisplay ...

  10. python3连接外部Mysql

    前提条件,已经安装过MySQL(比如说以前web开发安装过MySQL) 1.安装PyMySQL pip install PyMySQL 2.测试 import pymysql as ps db = p ...