まず、新しいユーザーへの公正な警告です。appcelerator には近づかないでください。そのチームは、自分が行った作業を恥じるべきです。例を読んでください。私が間違っていれば、喜んでそれを認めます。顧客のデータは既に存在し、モバイル アプリケーションは既存のフィールド名を使用して運用されています。
矢印クラウド データ ソースに対して、arrowdb の (有料) アカウントで batch_create を実行しています。単一のクエリはすべてうまく機能するので、主要な接続の問題や一般的な接続の問題がないことがわかっています。ログインは機能し、手動または自動のセッション管理を行うことができ、すべてクエリ、作成、削除などでうまく機能します.
node 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);
}
}
);
このコードを使用すると、次のエラーが表示されます: Request returned with HTTP status code 400 Invalid object at index 0: Invalid BSON id 17 フィールド名「idp_id」を「idpid」に変更すると、問題はなくなり、バッチが作成されます。または、コンテンツを「17」から任意の GUID「xxxxxxxxxxxxxxxxxxxxxxxx」形式に変更した場合。
質問は、API がコンテンツを GUID 形式である必要があると検証せずに、フィールド名に「_id」を含める方法を知っている人はいますか? 私が言ったように、データは既に存在し、フィールド名を変更したくなく、クライアント アプリ (Web アプリ、モバイル アプリなど) を更新する必要があります。
'_id' を含むフィールドを GUID として単純に検証するのはなぜですか? 彼らは単一の作成でそれをしませんか?挿入する必要がある何十万ものオブジェクトがあり、それらをバッチで作成したいと考えています。
助けてくれてありがとう。ACS の経験が乏しいだけで、常に AWS の人々に行きます....