由于字段名称中的“_id”而执行带有arrowdb错误的batch_create

时间:2016-08-09 16:20:24

标签: rest appcelerator appcelerator-arrow arrowdb

首先 - 对任何新用户公平警告,远离appcelerator,该团队应该为他们所执行的工作感到羞耻。继续阅读一个例子。如果我错了,我会高兴地承认。客户的数据已经存在,移动应用程序正在使用现有的字段名称进行生产。

我正在arrowdb上使用(付费)帐户对其箭头云数据源执行batch_create。单个查询都运行良好,所以我知道没有关键或一般连接问题。登录工作,我可以做手动或自动会话管理,一切都适用于查询,创建,删除等。

我正在使用节点arrowdb 1.06库。

现在我们到达batch_create,登录后我的代码看起来像这样:

arrowDBApp.post("/v1/objects/EM/batch_create.json",
        {"json_array": [
            {
                old_id: '537280ca1316e90db2335bf7',
                old_acl_id: '5372800e1316e90da8331dac',
                idp_id: '17',
                reference: '17',
                serves: [ '52a7c0a0534b2b0b5000002b' ],
                meter: 'NO METER',
                amps: '110',
                property_id: '52a7c02612f73e0b1e0032f7'
            }
        ]},

        function (err, result) {

            if (err) {
                console.error(err.message);
            }
            else {
                console.log(result.body.meta);
            }

        }
    );

使用此代码我收到此错误: 使用HTTP状态代码返回的请求400索引0处的无效对象:无效的BSON ID 17  如果我将字段名称“idp_id”更改为“idpid”,问题就会消失并创建批处理。或者,如果我将内容从“17”更改为任何GUID“xxxxxxxxxxxxxxxxxxxxxxxx”格式。

所以问题是,有没有人知道在没有API验证内容必须是GUID格式的情况下在字段名称中使用“_id”的方法?就像我说数据已经存在,我们不想更改字段名称,不得不更新客户端应用程序(网络应用程序,移动应用程序等)。

为什么他们只是用'_id'作为guid验证任何字段?他们不会在单一创作上做到这一点?我有数十万个必须插入的对象,并且想要批量创建它们。

感谢您的帮助。除了糟糕的ACS经验之外,从来没有任何经验,总是去AWS人员....

0 个答案:

没有答案