Get APIの使用によるデータのフェッチ

GetRequest APIを使用し、主キーを使用して単一のデータ行をフェッチします。

デフォルトでは、すべての読取り操作で最終的に整合性が維持されます。このタイプの読取りは、絶対的な整合性を使用する読取りよりもコストが低くなります。ConsistencyクラスのsetConsistency()メソッドを使用することで、NoSQLHandleインスタンスのデフォルトConsistencyを変更できます。

GetRequestクラスでは、簡単かつ強力な方法でデータを読み取ることができますが、より複雑な読取りリクエストには問合せを使用できます。表からデータを読み取るには、GetRequestクラスを使用してターゲット表とターゲット・キーを指定し、NoSQLHandle.get()を使用してリクエストを実行します。この操作の結果はGetResultで参照できます。NoSQLHandleConfig.setConsistency(oracle.nosql.driver.Consistency)メソッドとGetRequest.setConsistency()メソッドを使用することで、NoSQLHandleインスタンスのデフォルトConsistencyを変更できます。

こちらにあるサンプルの中からフル・コードQueryData.javaをダウンロードします。
//Fetch single row using get API
private static void getRow(NoSQLHandle handle,String colName,int Id) throws Exception {
   MapValue key = new MapValue().put(colName, Id);
   GetRequest getRequest = new GetRequest().setKey(key)
                                        .setTableName(tableName);
   GetResult getRes = handle.get(getRequest);
   /* on success, GetResult.getValue() returns a non-null value */
   if (getRes.getValue() != null) {
      System.out.println("\t" +getRes.getValue().toString());
   } else {
      System.out.println("Get Failed");
   }
}

ノート:

子表からデータをフェッチするには、setTableNameメソッドで表のフルネーム(parent_tablename.child_tablename)を指定します。親子表からのデータのフェッチ方法を理解するには、こちらでサンプルの中からフル・コードTableJoins.javaをダウンロードします。

GetRequest APIを使用し、主キーを使用して単一のデータ行をフェッチします。borneo.NoSQLHandle.get()メソッドを使用して単一行を読み取ることができます。このメソッドを使用すると、主キー値に基づいてレコードを取得できます。borneo.GetRequestクラスは、単純なget操作に使用します。これは、ターゲット行の主キー値を含み、borneo.GetResultのインスタンスを返します。ハンドルを作成する前に、borneo.NoSQLHandleConfig.set_consistency()を使用してborneo.NoSQLHandleのデフォルトConsistencyを変更できます。これは、borneo.GetRequest.set_consistency()を使用して単一のリクエストで変更できます。

こちらにあるサンプルの中からフル・コードQueryData.pyをダウンロードします。
# Fetch single row using get API
def getRow(handle,colName,Id):
  request = GetRequest().set_table_name('stream_acct')
  request.set_key({colName: Id})
  print('Query results: ')
  result = handle.get(request)
  print('Query results are' + str(result.get_value()))

ノート:

子表からデータをフェッチするには、set_table_nameメソッドで表のフルネーム(parent_tablename.child_tablename)を指定します。親子表からのデータのフェッチ方法を理解するには、こちらでサンプルの中からフル・コードTableJoins.pyをダウンロードします。

GetRequest APIを使用し、主キーを使用して単一のデータ行をフェッチします。Client.Get関数を使用して単一行を読み取ることができます。この関数を使用すると、主キー値に基づいてレコードを取得できます。nosqldb.GetRequestは、単純なget操作に使用します。これは、ターゲット行の主キー値を含み、nosqldb.GetResultのインスタンスを返します。get操作が成功すると、nil以外のGetResult.Versionが返されます。クライアントを作成する前に、RequestConfig.Consistencyを使用してnosqldb.RequestConfigのデフォルトConsistencyを変更できます。これは、GetRequest.Consistencyフィールドを使用して単一のリクエストで変更できます。

こちらにあるサンプルの中からフル・コードQueryData.goをダウンロードします。
//fetch data from the table
func getRow(client *nosqldb.Client, err error, tableName string, colName string, Id int)(){
	key:=&types.MapValue{}
   key.Put(colName, Id)
   req:=&nosqldb.GetRequest{
         TableName: tableName,
         Key: key,
   }
   res, err:=client.Get(req)
   if err != nil {
      fmt.Printf("GetResults() failed: %v\n", err)
      return
   }
   if res.RowExists() {
      fmt.Printf("Got row: %v\n", res.ValueAsJSON())
   } else {
      fmt.Printf("The row does not exist.\n")
   }
}

ノート:

子表からデータをフェッチするには、TableNameパラメータで表のフルネーム(parent_tablename.child_tablename)を指定します。親子表からのデータのフェッチ方法を理解するには、こちらでサンプルの中からフル・コードTableJoins.goをダウンロードします。

get APIを使用し、主キーを使用して単一のデータ行をフェッチします。getメソッドを使用して単一行を読み取ることができます。このメソッドを使用すると、主キー値に基づいてレコードを取得できます。メソッドの詳細は、NoSQLClientクラスを参照してください。

Consistencyの列挙を使用して、読取り操作の整合性を設定します。初期構成で、読取り操作用のデフォルトConsistencyを設定できます。これは、consistencyプロパティを使用してNoSQLClientインスタンスを作成するために使用されます。また、getメソッドのGetOpt引数にconsistencyプロパティを設定することで、単一の読取り操作でこれを変更することもできます。

JavaScript: こちらにあるサンプルの中からフル・コードQueryData.jsをダウンロードします。
//fetches single row with get API
async function getRow(handle,idVal) {
   try {
      const result = await handle.get(TABLE_NAME,{acct_Id: idVal });
      console.log('Got row:  %O', result.row);
   } catch(error) {
      console.error('  Error: ' + error.message);
   }
}
TypeScript: getメソッドおよびその他のデータ関連メソッドに、行に関するオプションのtypeパラメータを指定することもできます。typeパラメータを使用すると、TypeScriptコンパイラで、返されたGetResultメソッドにtypeヒントを提供でき、渡されたキーを型チェックできます。チェック中に、コンパイラで、主キー・フィールドがテーブル・スキーマに含まれているかどうかと、主キー・フィールドのが、許可されている (文字列、数値、日付、またはブール)であるかどうかが調査されます。こちらにあるサンプルの中からフル・コードQueryData.tsをダウンロードします。
interface StreamInt {
   acct_Id: Integer;
   profile_name: String;
   account_expiry: TIMESTAMP;
   acct_data: JSON;
}
/*fetches single row with get API*/
async function getRow(handle: NoSQLClient,idVal: Integer) {
   try {
      const result = await handle.get<StreamInt>(TABLE_NAME,{acct_Id: idVal });
      console.log('Got row:  %O', result.row);
   } catch(error) {
      console.error('  Error: ' + error.message);
   }
}

ノート:

子表からデータをフェッチするには、TABLE_NAMEパラメータで表のフルネーム(parent_tablename.child_tablename)を指定します。親子表からのデータのフェッチ方法を理解するには、こちらでJavaScriptフル・コードTableJoins.jsを、こちらでTypeScriptフル・コードTableJoins.tsをダウンロードします。

GET APIを使用し、主キーを使用して単一のデータ行をフェッチします。GetAsyncメソッドを使用して単一行を読み取ることができます。このメソッドを使用すると、主キー値に基づいて行を取得できます。フィールド名は、表の主キー列名と同じである必要があります。オプションをGetOptionsとして渡すこともできます。

Consistencyの列挙を使用して、読取り操作の整合性を設定できます。読取り操作のデフォルトの整合性は、NoSQLConfigのConsistencyプロパティとして設定できます。GetOptionsのConsistencyプロパティを使用することで、単一のGet操作の整合性を変更することもできます。GetAsyncメソッドでは、Task<GetResult<RecordValue>>が返されます。GetResultインスタンスには、返された行、行バージョンおよびその他の情報が含まれています。指定された主キーを持つ行が表に存在しない場合、行プロパティとバージョン・プロパティの両方の値がnullになります。

こちらにあるサンプルの中からフル・コードQueryData.csをダウンロードします。
private static async Task getRow(NoSQLClient client,String colName, int Id){
   var result = await client.GetAsync(TableName,
         new MapValue
         {
             [colName] =Id
         });
   if (result.Row != null){
      Console.WriteLine("Got row: {0}\n", result.Row.ToJsonString());
   }
   else {
      Console.WriteLine("Row with primaryKey {0} doesn't exist",colName);
   }
}

ノート:

子表からデータをフェッチするには、TableNameパラメータで表のフルネーム(parent_tablename.child_tablename)を指定します。親子表からのデータのフェッチ方法を理解するには、こちらでサンプルの中からフル・コードTableJoins.csをダウンロードします。