Datastore | Taslak #18
Owner
```javascript
/**
*
*
* `type`: temp, geçici veritabanı oluşturur (default); permanent, kalıcı veritabanı oluşturur
* `id`: Veritabanının herkes tarafından ulaşılabilir linki
* `expires`: Veritabanının silinmeye açık olacağı zaman dilimi
*
*
*/
let store = wsjs.datastore({
type: 'temp',
id: 'f1290186a5d0b1ceab27f4e77c0c5d68',
expires: 10,
primary: 'id'
});
/**
* add işlevi verilen primary key ile birlikte veri kaydı işlemi yapar
*/
await store.add({
id: '27',
name: 'Hasan',
surname: 'Can'
});
/**
* set işlevi verilen primary key ile birlikte veri değiştirme gerçekleştirir yapar
*/
await store.set({
id: '27',
name: 'Hasan',
surname: 'Can'
});
/**
* get işlevi verilen primary key ile birlikte veri okuma işlemi gerçekleştirir
*/
const record = await store.get('27');
/**
* remove işlevi verilen primary key ile birlikte veri silme işlemi gerçekleştirir
*/
await store.remove('27');
/**
* > {
* > id: '27',
* > name: 'Hasan',
* > surname: 'Can'
* > }
*/
/**
* Verilerin tamamı ile işlem yapmak istediğinizde veya büyük hacimli verilerde
* her kaydın ayrı ayrı alınıp işlenmesi ve atomik işlem gerçekleştirilmesi
* stabiliyeti ve performansı artırır çökme riskini azaltır
*/
let collection = store.collection();
/**
*
* filter, map, limit, order işlevleri tamamen tembel bir şekilde çalışırlar
* filter, verileri tek tek alıp onaylanmış veriyi primary kolonlarını bellekte biriktirirler ve bir sonraki aşamaya getirir
* map, tüm verileri veya filtrelenmiş verileri tekrar isteyerek tek tek dönüştürür bu sefer alınan verilerin tamamı bellekte tutulur
* reduce, filter ile aynı mantıkta çalışır
* get, map dışında tüm fonksiyonlarda tembel bir şekilde hedeflenmiş primary keyleri gerçek verilerini sunucudan ister
* reverse, tüm sonuçları en yeniden en eskiye doğru ister
*/
let data = collection.reverse().filter(data => {
return data.age > 18 ? true : false
}).map(data => {
return data.name
}).get()
/**
* filter, map, reverse gibi fonksiyonların kullandığı çekirdek fonksiyondur
* Bir primary key, index ve direction (ilerleme yönü) tutarak gerektiğinde tüm veriyi
* tek tek sunucudan okur, değiştirir veya siler
*/
let cursor = collection.cursor();
// cursoru sadece belirli kayıtlara ulaşması için filtreler diğer veriler sunucudan istenme<
cursor.readStatement({
name: 'ultra'
});
// get ile şuankini okursunuz
await cursor.get(); // --> '25'
// next ile bir sonraki öğeyi indirirsiniz
await cursor.next(); // --> 'false'
await cursor.get(); // --> '26'
await cursor.next(); // --> 'false'
await cursor.get(); // --> '27'
await cursor.next(); // --> 'true'
// son öğeye gelindiğinde next false sonucunu döndürür
await cursor.get(); // --> null
// son öğeye geldikten sonraki getler null verir
await cursor.next(); // --> 'true'
// Şuanki veri indexini verir
await cursor.getIndex(); // 272
// Şuanki veriyi siler
await cursor.removeCurrent(id);
// Şuanki veriyi günceller
await cursor.updateCurrent(id,args);
await cursor.close()
store.subscribe(['add','change','remove'],async (action, details) => {
switch(action)
{
case "add":{
const record = await store.get(details.id);
console.log("Yeni veri eklendi", record)
break;
}
case "change":{
const record = await store.get(details.id);
console.log("Veri değiştirildi", record)
break;
}
case "remove":{
console.log("Veri değiştirildi", details.id)
break;
}
}
});
```
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?