Obtener datos de la BD
다토 개인
Para obtener un solo dato (object) específico se usa el método
get(key)
, 알 쿠알 세 르 파사 코모 파라메트로 엘 key
델 오브제토 옵테너.El dato solicitado es devuelto como resultado de la petición.
💡 Este método devuelve
undefined
como resultado si el dato almacenado tiene el valor de undefined o no existe.
function getStudent(key){
const request = db.transaction('students')
.objectStore('students')
.get(key);
request.onsuccess = ()=> {
const student = request.result;
return student;
}
request.onerror = (err)=> {
console.error(`Error to get student information: ${err}`)
}
}
getStudent('[email protected]');
배수 데이터
개체 저장소 건초 보관 가능성:
모든 것을 가져라()
Si se desea obtener un arreglo con todos los datos dentro de un Object Store, se usa el metodo
getAll()
, para este caso de uso este metodo tiene un mejor rendimiento que usar un cursor
기록 보관소에 있는 기록 보관소, ya que este ultimo tendrá que crear un objeto por cada dato almacenado conforme va iterando el Object Store, mientras que getAll()
crea todos los objetos a la misma vez y devuelve el arreglo.function getAllStudents(){
const request = db.transaction('students')
.objectStore('students')
.getAll();
request.onsuccess = ()=> {
const students = request.result;
console.log('Got all the students');
console.table(students)
return students;
}
request.onerror = (err)=> {
console.error(`Error to get all students: ${err}`)
}
}
getAllStudents();
커서
Si se desea trabajar con todos los datos almacenados en un Object Store de forma independiente, es buena Idea el uso de un
cursor
, el cual es un mecanismo para iterar sobre multiples registros en base a su key
.Para usar un cursor primero debe crearse con el metodo
openCursor()
del objeto objectStore, una vez hecho el request se maneja el evento success
Donde el resultado del request es el cursor
, dentro de este resultado podemos acceder al dato almacenado o solo a su key
. Cuando no hay más datos o no se obtuvo un resultado en la búsqueda el cursor tiene el valor de undefined
. Finalmente, para pasar al siguiente dato almacenado se usa el metodo continue()
델 cursor
.Personalmente le encuentro dos casos de uso para el
cursor
:cursor
es más eficiente que el metodo getAll()
특별한 경우에 해당합니다. Para el ejemplo, supongamos que tenemos un metodo que imprime las propiedades de cada objeto almacenado llamado
printInfo(obj)
:function printStudents(){
const request = db.transaction('students')
.objectStore('students')
.openCursor();
request.onsuccess = ()=> {
const cursor = request.result;
if(cursor){
printInfo(cursor.value);
cursor.continue();
}else{
console.log('No more entries')
}
}
}
printStudents();
Reference
이 문제에 관하여(Obtener datos de la BD), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pandresdev/obtener-datos-de-la-bd-2e16텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)