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,如需转载请自行联系原作者

相关文章
|
5月前
|
数据库
egg.js 24.7数据库迁移(二)
egg.js 24.7数据库迁移(二)
47 0
egg.js 24.7数据库迁移(二)
|
5月前
|
数据库
egg.js 24.6数据库迁移(一)
egg.js 24.6数据库迁移(一)
58 0
|
5月前
|
NoSQL JavaScript 前端开发
如何使用 Node.js 连接和操作 MongoDB 数据库?
如何使用 Node.js 连接和操作 MongoDB 数据库?
500 2
|
3月前
|
JavaScript 关系型数据库 API
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
这篇文章介绍了什么是Prisma以及如何在Node.js和TypeScript后端应用中使用它。Prisma是一个开源的下一代ORM,包含PrismaClient、PrismaMigrate、PrismaStudio等部分。文章详细叙述了安装PrismaCLI和依赖包、初始化Prisma、连接数据库、定义Prisma模型、创建Prisma模块的过程,并对比了Prisma和Sequelize在Nest.js中的使用体验,认为Prisma更加便捷高效,没有繁琐的配置。
143 7
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
|
2月前
|
SQL JavaScript 前端开发
node.js使用Sequelize操作数据库
node.js使用Sequelize操作数据库
|
3月前
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的《数据库原理及应用》课程平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的《数据库原理及应用》课程平台附带文章源码部署视频讲解等
46 0
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
42 4
|
4月前
|
Java 测试技术 数据安全/隐私保护
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
34 0
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的《数据库系统原理》课程平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的《数据库系统原理》课程平台附带文章和源代码设计说明文档ppt
39 1