Get APIを使用したデータのフェッチ

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

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

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

ここにあるサンプルからフル・コード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を使用して、主キーを使用して1行のデータをフェッチします。borneo.NoSQLHandle.get()メソッドを使用して単一行を読むことができます。このメソッドを使用すると、主キー値に基づいてレコードを取得できます。borneo.GetRequestクラスは、単純なget操作に使用されます。ターゲット行の主キー値が含まれ、borneo.GetResultのインスタンスを返します。ハンドルを作成する前に、borneo.NoSQLHandleConfig.set_consistency()を使用してborneo.NoSQLHandleのデフォルトの整合性を変更できます。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を使用して、主キーを使用して1行のデータをフェッチします。Client.Get関数を使用して単一行を読むことができます。この関数を使用すると、主キー値に基づいてレコードを取得できます。nosqldb.GetRequestは、単純なget操作に使用されます。これにはターゲット行の主キー値が含まれ、nosqldb.GetResultのインスタンスを返します。get操作が成功すると、nil以外のGetResult.Versionが返されます。クライアントを作成する前に、RequestConfig.Consistencyを使用してnosqldb.RequestConfigのデフォルトの整合性を変更できます。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を使用して、主キーを使用して1行のデータをフェッチします。getメソッドを使用して単一行を読み取ることができます。このメソッドを使用すると、主キー値に基づいてレコードを取得できます。メソッドの詳細は、NoSQLClientクラスを参照してください。

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

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パラメータを使用すると、TypeScriptコンパイラは、戻されたGetResultメソッドのtypeヒントを提供したり、渡されたキーを入力チェックできます。typeチェック中、コンパイラは、主キーフィールドがテーブルスキーマの一部であるかどうか、および主キーフィールドの typeが許可される typesのいずれか(文字列、数値、日付、またはブール値)であるかどうかを調べます。ここの例からフル・コード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を使用して、主キーを使用して1行のデータをフェッチします。GetAsyncメソッドを使用して単一行を読むことができます。このメソッドを使用すると、主キー値に基づいて行を取得できます。フィールド名は、表の主キー列名と同じである必要があります。オプションをGetOptionsとして指定することもできます。

整合性列挙を使用して、読取り操作の整合性を設定できます。読取り操作のデフォルトの一貫性は、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をダウンロードして、ここで親子表からデータをフェッチする方法を理解します。