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中的类来实现对数据库操作的封装,从而使 ...
随机推荐
- 由于管理员设置的策略,该磁盘处于脱机状态"解决办法
.运行:cmd .输入:DISKPART.exe .DISKPART> san .DISKPART> san policy=onlineall .DISKPART>list disk ...
- LeetCode Weekly Contest 24
1, 543. Diameter of Binary Tree 维护左右子树的高度,同时更新结果,返回以该节点结束的最大长度.递归调用. /** * Definition for a binary t ...
- JavaScriptResult
- Java基础5一数组的常见应用算法
常用算法 1.冒泡排序: 原理:比较两个相邻的元素,将值大的元素交换至右端 示例: public static void bubbleSort(int[] a) { int n = a.length; ...
- SQL Server将数据导出到SQL脚本文件
http://www.studyofnet.com/news/list-8883.2-1-4.html 一.SQL Server 2008将数据导出到SQL脚本文件 1.打开SQL Server200 ...
- PythonOpencv-分类器—SVM,KNearest,RTrees,Boost,MLP
原文链接:http://blog.csdn.net/gjy095/article/details/9243153 上一篇文章,不是很详细,这一篇解释的清晰些,请访问原始链接. Rtrees介绍!参考链 ...
- swift可选值总结
1.枚举结构: 2.装包.解包概念:关联值. 3.可选值声明: 4.解包: 5.可选值作为参量生成的链. 6.可选值调用链. 最后做个总结 访问可选对象的属性或方法时,可以用 ? 号 访问可选对象的属 ...
- SpringMVC(五)@RequestHeader和@CookieValue
通过使用@RequestHeader获取请求头 通过使用@CookieValue获取cookie值 代码: 1: @Controller 2: public class TestHeader_Cook ...
- day06-08面向对象进阶
isinstance和issubclass 反射 setattr delattr getattr hasattr __str__和__repr__ __del__ item系列 __getitem__ ...
- 洛谷P1231 教辅的组成 最大流
裸题… Code: #include<cstdio> #include<cstring> #include<algorithm> #include<vecto ...