apiCloud中的数据库操作mcm-js-sdk的使用

简介:

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





本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5917512.html,如需转载请自行联系原作者

相关文章
|
10月前
|
前端开发 JavaScript API
JS 中这些冷门但好用的 API,你知道多少?
JS 中这些冷门但好用的 API,你知道多少?
99 0
|
10月前
|
前端开发 JavaScript API
前端封装库/工具库的动画之mo.js
在现代前端开发中,动画是一个非常重要的组成部分。其中,mo.js 是一个备受欢迎的 JavaScript 动画库。
280 2
|
11月前
|
移动开发 JavaScript API
js 文字转语音 api SpeechSynthesisUtterance
js 文字转语音 api SpeechSynthesisUtterance
268 0
|
Web App开发 存储 前端开发
从 微信 JS-SDK 认识 JSBridge
从 微信 JS-SDK 认识 JSBridge
142 0
|
移动开发 监控 前端开发
如何打造一款标准的JS-SDK
岳赢平台的JS-SDK是如何满足业务监控的需求的呢?如何才能更合理的设计JS-SDK呢,一起来了解下把
5257 0
|
JavaScript 算法 前端开发
vue 项目如何引入微信sdk,使用微信分享接口
写在前面: 做微信的网页基本上都要接入微信的sdk,我在做的时候,也颇费了一番功夫,然后就想记录一下,供自己日后翻阅,以及让有需要的朋友可以做一下参考,如果喜欢的可以点波赞,或者关注一下,希望可以帮到大家。 本文首发于我的个人blog:obkoro1.com 安装sdk npm install weixin-js-sdk --save 开始之前大家可以先读一读微信公众号的 接入文档,vue是单页面项目,比如你想要接入微信分享功能,分享功能在每个路由地址都要有,因为每个路由的url是不一样的,所以就需要在每个路由地址都引入一遍。 整体步骤: vue引入sdk的话,就是在路由组件
378 0
vue 项目如何引入微信sdk,使用微信分享接口
|
边缘计算 开发框架 JavaScript
使用 Dapr JS SDK 让 Nest.js 集成 Dapr
Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。
282 0
使用 Dapr JS SDK 让 Nest.js 集成 Dapr
|
移动开发 监控 前端开发
如何快速将你的应用封装成js-sdk?
本文将介绍前端如何封装一款 js-sdk 以及如何快速将你的应用变成 js-sdk , 我们将总结一些封装 js-sdk 的原则和案例, 来帮大家更快的上手 sdk 开发. 其中笔者还会以H5-Dooring 为例子, 介绍如何将 H5 页面编辑器封装成一个 js-sdk 供他人使用.
581 0
|
JavaScript 开发工具
如何使用 gear-js SDK
gear-js 是 Gear 的 js SDK,通过这个工具我们可以连接节点,上传合约,发送交易,还有解析 Gear 合约等。
111 0
如何使用 gear-js SDK
|
移动开发 监控 前端开发
如何打造一款标准的 JS SDK ?
本文通过 SDK 的实际案例,介绍如何基于 JavaScript 来开发 SDK,并分享一些设计原则以及实现技巧。
如何打造一款标准的 JS SDK ?

热门文章

最新文章