Published unlisted
Edited
Sep 5, 2020
Insert cell
Insert cell
Insert cell
Insert cell
Changed in fork
-
db = new loki('sandbox.db');
+
db = new loki('sandbox.db')
Insert cell
Insert cell
Changed in fork
-
te_items = db.addCollection('items');
+
mutable te_items = db.addCollection('items');
Insert cell
Insert cell
Changed in fork
-
{ const btn = html`<button style="background-color:#EB9486;color:#0E0F1A" onclick=${ () => { te_items.insert({ name : 'Bob', owner: 'MON', maker: 'burgers' });} }>Add some data to ${db.filename}</button>` return btn; }
+
html`<button style="background-color:#EB9486;color:#0E0F1A" onclick=${() => { mutable te_items.insert({ name : 'Bob', owner: 'MON', maker: 'burgers' }); mutable te_items = mutable te_items; // trigger downstream cells }}>Add some data to ${db.filename}</button>`
Insert cell
Insert cell
viewof addData = html`<button style="background-color:#EB9486;color:#0E0F1A" >Add 4 items to database</button>`
Insert cell
Changed in fork
// Insert some documents to the collection // needs to test that these are present add_data = {
-
addData; let a = te_items.insert({ name : 'mjolnir', owner: 'thor', maker: 'dwarves' }); let b = te_items.insert({ name : 'gungnir', owner: 'odin', maker: 'elves' }); let c = te_items.insert({ name : 'tyrfing', owner: 'Svafrlami', maker: 'dwarves' }); let d = te_items.insert({ name : 'draupnir', owner: 'odin', maker: 'elves' }); return te_items.data // show all data that's been added // return [a,b,c,d] // what was added // do i even need a return ???
+
addData; // run again when the button is clicked mutable te_items.insert({ name : 'mjolnir', owner: 'thor', maker: 'dwarves' }); mutable te_items.insert({ name : 'gungnir', owner: 'odin', maker: 'elves' }); mutable te_items.insert({ name : 'tyrfing', owner: 'Svafrlami', maker: 'dwarves' }); mutable te_items.insert({ name : 'draupnir', owner: 'odin', maker: 'elves' }); mutable te_items = mutable te_items; // trigger downstream cells
}
Insert cell
Insert cell
te_items.data
Insert cell
Insert cell
viewof doThis = html`<button style="background-color:#EB9486;color:#0E0F1A">Find and update</button>`
Insert cell
Changed in fork
-
// this cell has to wait for the above cells to run.
find = {
+
add_data; // depends on add_data inserting tyrfing
doThis;
-
var tyrfing = te_items.findOne({'name': 'tyrfing'});
+
var tyrfing = mutable te_items.findOne({'name': 'tyrfing'});
tyrfing.owner = 'todd';
-
te_items.update(tyrfing); return (te_items.data)
+
mutable te_items.update(tyrfing); mutable te_items = mutable te_items;
}
Insert cell
Insert cell
loki = require('lokijs@1.5.11/src/lokijs.js').catch(() => window["loki"])
Insert cell
Insert cell
import {html, svg} from "@observablehq/htl"
Insert cell
Insert cell