Utilizzo di Get API per recuperare i dati
Utilizzare l'API GetRequest
per recuperare una singola riga di dati utilizzando la chiave primaria.
Per impostazione predefinita, tutte le operazioni di lettura sono probabilmente coerenti. Questo tipo di lettura è meno costoso di quelli che utilizzano la coerenza assoluta. È possibile modificare la coerenza predefinita per un'istanza NoSQLHandle utilizzando il metodo setConsistency()
nella classe Consistency
.
La classe GetRequest
fornisce un modo semplice e potente per leggere i dati, mentre le query possono essere utilizzate per richieste di lettura più complesse. Per leggere i dati da una tabella, specificare la tabella di destinazione e la chiave di destinazione utilizzando la classe GetRequest
e utilizzare NoSQLHandle.get()
per eseguire la richiesta. Il risultato dell'operazione è disponibile in GetResult
. È possibile modificare la coerenza predefinita per un'istanza NoSQLHandle utilizzando i metodi NoSQLHandleConfig.setConsistency(oracle.nosql.driver.Consistency)
e GetRequest.setConsistency()
.
//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");
}
}
Nota
Per recuperare i dati da una tabella figlio, specificare il nome completo della tabella (parent_tablename.child_tablename) nel metodosetTableName
. Scaricare il codice completo TableJoins.java dagli esempi per comprendere come recuperare i dati da una tabella padre-figlio qui.
Utilizzare l'API GetRequest
per recuperare una singola riga di dati utilizzando la chiave primaria. È possibile leggere righe singole utilizzando il metodo borneo.NoSQLHandle.get()
. Questo metodo consente di recuperare un record in base al relativo valore di chiave primaria. La classe borneo.GetRequest
viene utilizzata per operazioni get semplici. Contiene il valore della chiave primaria per la riga di destinazione e restituisce un'istanza di borneo.GetResult
. È possibile modificare la coerenza predefinita per un borneo.NoSQLHandle
utilizzando borneo.NoSQLHandleConfig.set_consistency()
prima di creare l'handle. Può essere modificato per una singola richiesta utilizzando borneo.GetRequest.set_consistency()
.
# 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()))
Nota
Per recuperare i dati da una tabella figlio, specificare il nome completo della tabella (parent_tablename.child_tablename) nel metodoset_table_name
. Scaricare il codice completo TableJoins.py dagli esempi per comprendere come recuperare i dati da una tabella padre-figlio qui.
Utilizzare l'API GetRequest
per recuperare una singola riga di dati utilizzando la chiave primaria. È possibile leggere righe singole utilizzando la funzione Client.Get
. Questa funzione consente di recuperare un record in base al relativo valore di chiave primaria. nosqldb.GetRequest
viene utilizzato per operazioni get semplici. Contiene il valore della chiave primaria per la riga di destinazione e restituisce un'istanza di nosqldb.GetResult
. Se l'operazione get riesce, viene restituito un valore GetResult.Version
diverso da zero. È possibile modificare la coerenza predefinita per un nosqldb.RequestConfig
utilizzando RequestConfig.Consistency
prima di creare il client. Può essere modificato per una singola richiesta utilizzando il campo GetRequest.Consistency
.
//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")
}
}
Nota
Per recuperare i dati da una tabella figlio, specificare il nome completo della tabella (parent_tablename.child_tablename) nel parametroTableName
. Scaricare il codice completo TableJoins.go dagli esempi per comprendere come recuperare i dati da una tabella padre-figlio qui.
Utilizzare l'API get
per recuperare una singola riga di dati utilizzando la chiave primaria. È possibile leggere una singola riga utilizzando il metodo get
. Questo metodo consente di recuperare un record in base al relativo valore di chiave primaria. Per ulteriori informazioni sul metodo, vedere la classe NoSQLClient.
Impostare la coerenza dell'operazione di lettura utilizzando l'enumerazione di coerenza. È possibile impostare la coerenza predefinita per le operazioni di lettura nella configurazione iniziale utilizzata per creare un'istanza NoSQLClient utilizzando la proprietà di coerenza. È inoltre possibile modificarla per una singola operazione di lettura impostando la proprietà di coerenza nell'argomento GetOpt del metodo get.
//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);
}
}
get
e ad altri metodi correlati ai dati. Il parametro type consente al compilatore TypeScript di fornire suggerimenti type per il metodo GetResult
restituito e di controllare il tipo della chiave passata. Durante il controllo del tipo, il compilatore controlla se il campo della chiave primaria fa parte dello schema di tabella e se il tipo del campo della chiave primaria è uno dei tipi consentiti, ovvero stringa, numerico, data o booleano. Scarica il codice completo QueryData.ts dagli esempi qui.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);
}
}
Nota
Per recuperare i dati da una tabella figlio, specificare il nome completo della tabella (parent_tablename.child_tablename) nel parametroTABLE_NAME
. Scarica il codice JavaScript completo TableJoins.js qui e il codice TypeScript completo TableJoins.ts qui per capire come recuperare i dati da una tabella padre-figlio.
Utilizzare l'API GET per recuperare una singola riga di dati utilizzando la chiave primaria. È possibile leggere una singola riga utilizzando il metodo GetAsync
. Questo metodo consente di recuperare una riga in base al relativo valore di chiave primaria. I nomi dei campi devono essere uguali ai nomi delle colonne della chiave primaria della tabella. È inoltre possibile passare le opzioni come GetOptions
.
È possibile impostare la coerenza di un'operazione di lettura utilizzando l'enumerazione di coerenza. La coerenza predefinita per le operazioni di lettura può essere impostata come proprietà di coerenza di NoSQLConfig
. È inoltre possibile modificare la coerenza per una singola operazione Get utilizzando la proprietà Consistency di GetOptions
. Il metodo GetAsync
restituisce Task<GetResult<RecordValue>>
. L'istanza GetResult
contiene la riga restituita, la versione della riga e altre informazioni. Se la riga con la chiave primaria fornita non esiste nella tabella, i valori delle proprietà Riga e Versione saranno nulli.
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);
}
}
Nota
Per recuperare i dati da una tabella figlio, specificare il nome completo della tabella (parent_tablename.child_tablename) nel parametroTableName
. Scaricare il codice completo TableJoins.cs dagli esempi per comprendere come recuperare i dati da una tabella padre-figlio qui.