帖子
帖子
用户
博客
课程
显示全部楼层
1
帖子
0
勋章
12
Y币

[云开发] 急急急!关于多条件下的MCM查询

[复制链接]
发表于 2015-7-22 03:08:23
代码如下,逻辑为需要查询另外一个表中符合多个条件的数据记录问题描述:
step 1: 如果直接写固定代码,如下图红色部分,可以查询成功。
step 2:如果定义一个变量,
var paraStr = '[{"id": "55ae48ade7897cba5c72f587"},{"id": "55ae48980783913b2979fd8d"}]';
然后将红色部分替换为paraStr,查询失败,返回网络错误。code:1
step3: 将红色字符串首尾加上'',失败!   ‘[{"id": "55ae48ade7897cba5c72f587"},{"id": "55ae48980783913b2979fd8d"'
step4: 不可能加"",直接报语法错误了。


期望:实际program中,代码写死的可能性几乎没有,请问如何解决?感觉很奇怪。被这个问题卡了一晚上了,请尽快回复啊。


                        var query = api.require("query");
                       
                        query.createQuery(function(ret1, err1) {
                            if (ret1 && ret1.qid) {
                                var queryId = ret1.qid;
                       
                                query.whereEqual({
                                    qid: queryId,
                                    column: "or",
                                    value: [{
                                });
                       
                                query.limit({
                                    qid:queryId,
                                    value:"20"
                                });
                       
                                var model = api.require("model");
                       
                                model.findAll({
                                    class: "service",
                                    qid: queryId
                                }, function(ret2, err2){
                                    alert("ret: " + JSON.stringify(ret2) + "\nerr: " + JSON.stringify(err2));
                                });
                            }
                        });


1
帖子
0
勋章
12
Y币
不知道为何,红色部分消失了、   在此补上:   
value: [{"id": "55ae48ade7897cba5c72f587"},{"id": "55ae48980783913b2979fd8d"}]
89
帖子
0
勋章
1万+
Y币
试试这个:
var obj=[{"id": "55ae48ade7897cba5c72f587"},{"id": "55ae48980783913b2979fd8d"}];
var paraStr=JSON.stringify(obj);
7
帖子
0
勋章
1594
Y币
用mcm-js-sdk吧,https://**.**/APICloud-com/mcm-js-sdk mcm模块不支持你需要的这种查询
1
帖子
0
勋章
12
Y币
huguoba 发表于 2015-7-22 08:48
试试这个:
var obj=[{"id": "55ae48ade7897cba5c72f587"},{"id": "55ae48980783913b2979fd8d"}];
var para ...

试了,还是不行。感觉奇怪,直接写就可以。还有其他高招吗?
1
帖子
0
勋章
12
Y币
数据云咨询-北 发表于 2015-7-22 09:55
用mcm-js-sdk吧,https://**.**/APICloud-com/mcm-js-sdk mcm模块不支持你需要的这种查询 ...

很奇怪,如果写死是可以的,这个不能证明mcm不支持吧?能详细说一下吗?如果确实不行,只能集成mcm-js-sdk。关键写死的话是可以查询的,这至少说明mcm支持吧?
7
帖子
0
勋章
1594
Y币
zhiming 发表于 2015-7-22 13:06
很奇怪,如果写死是可以的,这个不能证明mcm不支持吧?能详细说一下吗?如果确实不行,只能集成mcm-js-sd ...

那你继续研究下,MCM模块我也不是很清楚
1
帖子
0
勋章
12
Y币
数据云咨询-北 发表于 2015-7-22 13:16
那你继续研究下,MCM模块我也不是很清楚

谢谢。 刚刚试了 js-sdk,似乎无法执行。
                 log("start");
                     var client = new Resource("xxxx", "xxxx");
                                Log("start: client"+client+"[]");
                                var Service= client.Factory("service");
                                Log("start: client"+client+"[]"+Service);
                                Service.query({
                                  "filter": {
                                    "where": {
                                      "or": [
                                        {
                                          "id": "55ae48ade7897cba5c72f587"
                                        },
                                        {
                                          "id": "55ae48980783913b2979fd8d"
                                        }
                                      ]
                                    },
                                    "skip": 0,
                                    "limit": 20
                                  }
                                },function(ret,err){
                                  Log("ret:"+ret);
                                });
其中,xxx是我的id,填写正确。同时,根据api调试生成的代码,我在最后加了一个;,见红色的。 问题:根据log,只显示了start,后面的没有打印。是否还需要配置什么东西?谢谢
7
帖子
0
勋章
1594
Y币
zhiming 发表于 2015-7-22 13:27
谢谢。 刚刚试了 js-sdk,似乎无法执行。
                 log("start");
                     var client = new Reso ...

我测试下查询是完全没有问题的,而且完全没有必要用or的方式,inq的方式完全满足你的需求。

你检查下你的代码是不是那不对了log Log这俩方法都有吗?还是只有log
1
帖子
0
勋章
12
Y币
更新:已经换成了js-sdk,但是写死字符串没有问题,通过JSON.stringify生成的字符串,仔细对了好多篇,完全相同,但是返回:
statuscode:0 , code:3  msg:数据类型错误,    有其他兄弟遇到这个问题吗?如果只能写死用,那基本无法使用啊
您需要登录后才可以回帖 登录

本版积分规则