2017-01-20 43 views
-1

Q.1:私は、ユーザー定義関数でDocumentDBに1つのクエリを実行したいNodeJSのDocumentDBのSQLクエリで関数を渡すには?

var udf = function(users, userid) { 
     var s, _i, _len; 
     for (_i = 0, _len = users.length; _i < _len; _i++) { 
      s = users[_i]; 
      if (s.userid === userid) { 
       return true; 
      } 
     } 
     return false; 
    }; 




    conversationsQuerySpec = { 
     query: 'SELECT * FROM root r WHERE @fn(r.users, @userid) AND [email protected]', 
     parameters: [{ 
      name: '@fn', 
      value: udf 
     }, { 
      name: '@userid', 
      value: userid 
     }, { 
      name: '@id', 
      value: id 
     }] 
    }; 

しかし、問題は、このクエリが投げエラーを実行していないということです。

Q.2:私はどのように実行することができ、ドイツ語=中、私はレベル=第二に合格したくないクエリを実行したい

var student = { 
    name: 'piyush', 
    classes: [{ 
     level: '1st', 
     medium: 'spanish' 
    },{ 
     level: '2nd', 
     medium: 'german' 
    }] 
} 

:私は配列のようにdocumentDBで1つのオブジェクトを持っていますこのクエリ?

+0

最初のもの:2つの別々の質問に分けてください。全く別の2つの質問です。 –

答えて

1

Q1。パラメーターとしてではなく、UDFを個別にアップロードする必要があります。そのクエリを実行する前に、適切なSDK呼び出しを使用してアップサンプリングしてください。

  1. 最初に、コレクション内のcreateUserDefinedFunctionを使用してmyUserDefinedFunctionなどの名前でUDFを登録します。
  2. 次に、クエリ内で名前で使用できます(例: SELECT * FROM root r WHERE udf.myUserDefinedFunction(r.users, @userid) AND [email protected]

Q2。

+1

私は自分の答え、Larryを削除しました。あなたの方が良いです! –

+0

あなたはそれを丁寧さで行う必要はありませんでした。また、あなたのアップロード方法に関する詳細がありました。あなたはそれを私の答えに加えることができますか? –

+0

お互いに感謝します。Ans.2は私のためにうまくいっていますが、まだ私はAns.1を理解していませんでした。私はNodeJSでdocumentbuilder NPMモジュールを使用していますので、私はそれを取得しませんでした、あなたはもっと良く説明できますか? –

関連する問題