2017-10-19 11 views
0

現在、現在のLua-ReQLドライバと互換性のないLuaライブラリのLuvit用ドライバを作成しています。この問題についてどうすればいいですか? JSONのように当該
データ、特定のデータセットでエラーが発生しました

{"Settings":{"bet":"b!","admin_roles":[],"co_owner_roles":[],"voting_chan":"default---channel","mod_log":"true","log_channel":"default---channel","voting":"false","verify":"true","audit_log":"true","audit_log_chan":"audit-log-test","mod_log_chan":"modlog","banned_phrases":[],"mod_roles":[],"verify_chan":"default---channel","mod_log_channel":"default---channel","verify_role":"Member"},"Roles":[],"Cases":[],"Votes":[],"Timers":[],"id":"284381751084843008","Ignore":[]} 

直列化データが

[1,[53, [[15, [[14, ["test"]], "table"]], {"Ignore":[],"id":"284381751084843008","Cases":[],"Roles":[],"Timers":[],"Settings":{"bet":"b!","admin_roles":[],"co_owner_roles":[],"voting_chan":"default---channel","mod_log":"true","log_channel":"default---channel","voting":"false","verify":"true","audit_log":"true","audit_log_chan":"audit-log-test","mod_log_chan":"modlog","banned_phrases":[],"mod_roles":[],"verify_chan":"default---channel","mod_log_channel":"default---channel","verify_role":"Member"},"Votes":[]}]],{}] 

サーバからのデータである。問題は、アレイの1つである

Expected between 1 and 3 elements in a raw term, but found 0. 

答えて

0

空である。これから作成する実際のクエリは何ですか?それはr.db('test').table('table').update(<your document>)ですか?

私はソースファイルterm_walker.ccを見ています。 UPDATE(オブジェクト全体{"Ignore"...})に渡されたオブジェクトは、[MAKE_OBJ, {"Ignore"...}](ASTがコード行rewrite(src, Term::MAKE_OBJ);で処理されるように) にラップされ、次にオブジェクト{"Ignore"...}が同じ方法で処理されるようです。optargsパラメータは、その値のフィールドにはwalkが呼び出されます。

裸のオブジェクトは、すでに[3, <object>](MAKE_OBJ = 3であるため)と同じように扱われているようです。ユーザーが式{"abc": r.add(1, 2)}を書き込むと、それはMAKE_OBJ式であると考えられ、サブ式はクライアントライブラリによって適切なReQL-eseに変換される必要があります。私の推測では、あなたのクライアントライブラリはオブジェクトを走査してこの変換を行っていないということです。あなたはそれを行う必要があるので、ベアアレイはどのようなものに変えられます(MAKE_ARRAYという用語ですか?)。あなたのクライアントが、横断されずに処理されないオブジェクトを渡すようにしたい場合は、DATUMを使用してください。

ガイドラインとして私がここに述べたすべてを90%の確実性だけで服用してください。

+0

ありがとうございました!私はデータムを使用することに決めました。それは魅力のように機能します! <3 – DannehSC

関連する問題