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
apiCloud中的数据库操作mcm-js-sdk的使用的更多相关文章
- Atitti.数据操作crud js sdk dataServiceV3设计说明
Atitti.数据操作crud js sdk dataServiceV3设计说明 1. 增加数据1 1.1. 参数哦说明1 2. 查询数据1 2.1. 参数说明2 3. 更新数据2 3.1. 参数说明 ...
- android中的数据库操作(转)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- CI中的数据库操作以及AR连贯操作
要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- phpcms v9 中的数据库操作函数
1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- android中的数据库操作
如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...
- PHP中对数据库操作的封装
在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...
随机推荐
- 爬虫中之Requests 模块的进阶
requests进阶内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个 ...
- USB接口大全
USB2.0系列: Standard A: Standard B: Mini Standard B: Micro USB: ** Micro USB 与 Mini B比较 ** USB3.0系列: U ...
- js---通过arguments来获取指定参数
通过访问arguments对象的length属性可以获取有多少个参数传递给了函数. 如:每次被调用的时候,输出传入其中的参数个数 function doAdd(){ alert(arguments.l ...
- DataGridView属性设置汇总
1.标题列居中 外观 ColumnHeadersDefaultCellStyle - Alignment - MiddleCenter 2.表格内容居中 外观 DefaultCellStyle - ...
- WPF 解决拼接屏全屏的问题
需求: 8块1920*1080屏幕拼接 橙色4个框每个框(1920*1080)拼接成一个1920*1080 红色4个框每个框(1920*1080)拼接成一个1920*1080 橙色和红色作为displ ...
- 杭电2054 WA
#include<stdio.h> #include<string.h> ],b[]; int main() { ,len2=,i; ; scanf("%s" ...
- 00--C++牛人的博客
那些C++牛人的博客 这篇文章来自转载,转载的网址找不到了, 如果有人知道,可以在下面评论, 非常感谢,更感谢原作者. 现整理收集C++世界里那些“牛人”的个人博客.凡三类:一是令人高山仰止的 ...
- 在Linux Centos 7.2 上安装指定版本Docker 17.03
相关资料链接: https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce 先清空下“历史” yum insta ...
- JavaScript正则表达式总结
同学们,今天给大家带来一篇正则表达式的总结,老规矩,先说下我们为什么要用正则?正则要用在什么地方? (个人理解的,大神轻喷) 正则很多时候要用于字符串操作,比如我们要把一个字符串里面的空格删除啊,替换 ...
- 关于linux三种网络形式
今天是开始的第一天,额,没什么仪式.舍友偶然间提醒我,应该把学习的东西,做一下规划和整理.我想一想也是对的.所以开通了这个.希望以后回来可以看看自己曾经的幼稚,那证明了我不断在学习在进步.最近在准备C ...