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. anaconda 使用 及 tensorflow-gpu 安装

    Anaconda简易使用 创建新环境 conda create -n rcnn python=3.6 删除环境 conda remove -n rcnn --all 进入环境 conda activa ...

  2. C - Twins(贪心)

    Problem description Imagine that you have a twin brother or sister. Having another person that looks ...

  3. Android之Action Bar

    Action Bar在实际应用中,很好地为用户提供了导航,窗口位置标识,操作点击等功能.它出现于Android3.0(API 11)之后的版本中,在2.1之后的版本中也可以使用. 添加与隐藏Actio ...

  4. chrome打开控制台状态下,没有人为打断点,自动进入断点模式的解决方法

    如下图所示:在控制台去掉Sources -> XHR/fetch Breakpoints -> Any XHR or fetch 的勾

  5. the selection cannot be run on any server

    导入war包后运行jsp 显示: the selection cannot be run on any server 问题原因: Dynamic Web Module 的版本与server不匹配.Dy ...

  6. 8) 十分钟学会android--Activity的生命周期之停止与重启

    恰当的停止与重启我们的activity是很重要的,在activity生命周期中,他们能确保用户感知到程序的存在并不会丢失他们的进度.在下面一些关键的场景中会涉及到停止与重启: 用户打开最近使用app的 ...

  7. 【Oracle】glogin.sql脚本模板

    [root@localhost ~]# su - oracle [oracle@localhost ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql defin ...

  8. 用JS解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题

    当用ajax异步时,返回JsonResult格式的时候,发现当字段是dateTime类型时,返回的json格式既然是“/Date(1435542121135)/” 这样子的,当然这不是我们想要的格式. ...

  9. 模拟试题C

    模拟试题C 一.单项选择题(2′*14 =28′) 1.双线性法向插值法(Phong Shading)的优点是( ) A)法向计算精确 B)高光域准确 C)对光源和视点没有限制 D)速度较快 2.用编 ...

  10. 杭电1003 Max Sum TLE

    这一题目是要求连续子序列的最大和,所以在看到题目的一瞬间就想到的是把所有情况列举出来,再两个两个的比较,取最大的(即为更新最大值的意思),这样的思路很简单,但是会超时,时间复杂度为O(n^3),因为有 ...