1.引入js

<!-- 引入mcm-js-sdk Begin -->
<script type="text/javascript" src="../plugin/mcm-js-sdk/APICloud-rest-SHA1.js"></script>
<script type="text/javascript" src="../plugin/mcm-js-sdk/APICloud-rest.js"></script>
<script type="text/javascript" src="../plugin/mcm-js-sdk/SHA1.js"></script>
<!-- 引入mcm-js-sdk END -->

2.生成对象

var client = new Resource("xxx", "xxx");
var Model = client.Factory("user");

3.获取数据get


Model.get({"_id": '57eb89ad074073e11321e0d3'}, function (ret,err) {
alert("Model get:"+JSON.stringify(ret));
});

4.添加保存数据save

        Model.save({
"username": "xiaoming",
"password": "123456",
"email": "xiaoming@126.com"
}, function(ret,err){
if(err){
alert(JSON.stringify(ret));
}else{
alert(JSON.stringify(ret));
}
})
Model.save({"_id":"57ec73e87813d7a36cc9d9ec"},{"username":"Dongcheng"}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

5.删除对象delete

Model.delete({"_id":"57ec73e87813d7a36cc9d9ec"},function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

6.批量操作

        var client = new Resource("xxx", "xxx");

        client.batch([
{
"method": "POST",
"path": "/mcm/api/user",
"body": {
"username": "user1",
"password": "123456"
}
},
{
"method": "POST",
"path": "/mcm/api/user",
"body": {
"username": "user2",
"password": "123456"
}
}
], function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

7.操作符

名称	说明
$inc 增加字段的值指定的数量
$mul 增加字段的值乘以指定的数量
$set 在文档中设置一个字段的值。
$min 仅更新字段如果指定的值小于现有的字段值。
$max 仅更新字段如果指定的值大于现有的字段值。
$push 增加一个项到数组的尾部
$pushAll增加多个项到数组的尾
$pull 删除一个项从数组当中
$pullAll删除多个项从数组中

inc

        Model.save({"_id":"57eb82c5abca25f4649f1d22"},{"$inc": { money: +10},"username":"jack"}, function(ret,err){ // 指定值增加10
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

mul

        Model.save({"_id":"57eb82c5abca25f4649f1d22"},{"$mul": { money:1.25},"username":"jack"}, function(ret,err){ // 指定乘以1.25
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

set 复制设置

        Model.save({"_id":"57eb82c5abca25f4649f1d22"},{
"$set": {
username: "xi",
details: {
model: "14Q3",
make: "xyz"
},
tags: [
"coats",
"outerwear",
"clothing"
]
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

min 操作符更新字段的值为一个指定的值,如果指定的值小于指定字段的当前值

        Model.save({"_id":"57eb82c5abca25f4649f1d22"},{"$min": { "money": 10 }}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

max操作符更新字段的值指定的值,如果指定的值大于字段的当前值

        Model.save({"_id":"57eb82c5abca25f4649f1d22"},{"$max": { "money": 150 }}, function(ret,err){ // 指定的值为150
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

push,pushAll,pull,pullAll略。

8.字段过滤

        Model.query({
filter:{
fields:{"username": true, "email": true}//或者["username","email"]
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

9.条数过滤(Limit filter)

Model.query({
filter:{
limit:2,
fields:{"username": true, "email": true}//或者["username","email"]
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

10.排序(Order filter)

Model.query({
filter:{
"order": "money DESC",
limit:2,
fields:{"username": true, "email": true ,"money":true}//或者["username","email"]
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

11.跳过(Skip filter)

Model.query({
filter:{
"skip":3,
"order": "money ASC",
limit:2,
fields:{"username": true, "email": true ,"money":true}//或者["username","email"]
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

12.条件过滤(Where filter)


操作符 说明
and 逻辑与
or 逻辑或
gt,gte 大于(>),大于或等于(> =)。只有效数值和日期值
lt,lte 小于(<),小于或等于(< =)。只有效数值和日期值
between 在…之间
inq,nin 在/不在一个数组之内
near 地理位置,返回最接近点,按距离的顺序排序
ne 不等于(!=)
like,nlike like/not like 操作符返回符合正则表达式的数据
Model.query({
filter:{
"where":{"money":"150"}
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
});
Model.query({
filter:{
"where":{
"money":{"gt":100}
}
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
});
Model.query({
filter:{
"where": {
"and": [
{"username": "xi"},
{"money":{"gt":100}}
]
}
}
}, function(ret,err){
if(err){
alert(JSON.stringify(err));
}else{
alert(JSON.stringify(ret));
}
})

更多内容参考官网 http://docs.apicloud.com/Cloud-API/data-cloud-api

apiCloud中的数据库操作mcm-js-sdk的使用的更多相关文章

  1. Atitti.数据操作crud js sdk dataServiceV3设计说明

    Atitti.数据操作crud js sdk dataServiceV3设计说明 1. 增加数据1 1.1. 参数哦说明1 2. 查询数据1 2.1. 参数说明2 3. 更新数据2 3.1. 参数说明 ...

  2. android中的数据库操作(转)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  3. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  4. CI中的数据库操作以及AR连贯操作

    要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...

  5. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  6. phpcms v9 中的数据库操作函数

    1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='')   返回 ...

  7. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  8. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

  9. PHP中对数据库操作的封装

    在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...

随机推荐

  1. SEO规范(部分)

    1:尽量减少AJAX的使用搜索引擎无法检索ajax中的内容,也无法识别javascript代码. 2:拒绝iframe,frame标签iframe,frame会极大的阻碍搜索引擎爬取网站内容. 3:图 ...

  2. 图的连通性问题的小结 (双连通、2-SAT)

    图的连通性问题包括: 1.强连通分量. 2.最小点基和最小权点基. 3.双连通. 4.全局最小割. 5.2-SAT 一.强连通分量 强连通分量很少单独出题,一般都是把求强连通分量作为缩点工具. 有三种 ...

  3. vs添加浏览器

    点击桌面谷歌图标,查看属性,赋值全部地址 在vs中,直接添加,把地址复制进去就ok了

  4. 一个关于C++拷贝构造的bug

    #include <iostream> using namespace std; class A { public: A(int a) {}; A(const A&) = defa ...

  5. Docker的官网在线--中文教程

    1.官网界面:https://www.docker.com/tryit/ In this 10-minute tutorial, see how Docker works first-hand: Yo ...

  6. ObjecT4:On-line multiple instance learning (MIL)学习

    原文链接:http://blog.csdn.net/ikerpeng/article/details/19235391 用到论文,直接看翻译. 文章:Robust object tracking wi ...

  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    http://www.cnblogs.com/wuhuacong/p/3871991.html 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览 在博客园很多文章 ...

  8. day27-3 matplatlib模块

    目录 matplotlib 条形图 折线图 散点图 matplotlib 图形可视化,主要用来画图 别问,问就是看不懂 条形图 import matplotlib.pyplot as plt # 只识 ...

  9. python海龟的使用

    ############################螺旋正方形############################### import turtle turtle.left(90)for i ...

  10. Linux的环境中如何生成srw-rw---- 的文件权限?

    文件属性 d 开头是: 目录文件. l 开头是: 符号链接(指向另一个文件,类似于瘟下的快捷方式). s 开头是: 套接字文件(sock). b 开头是: 块设备文件,二进制文件. c 开头是: 字符 ...