JSFiddle - React, Tailwind, and code Playground
by lid0
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lovefield/2.1.12/lovefield.min.js"></script>
<pre>google/lovefield db js. (see console) </pre>
JavaScript
var schemaBuilder = lf.schema.create('todo', 1);
schemaBuilder.createTable('Item').
addColumn('id', lf.Type.INTEGER).
addColumn('color', lf.Type.STRING).
addColumn('age', lf.Type.INTEGER).
addPrimaryKey(['id']);
var todoDb;
var item;
var id = 1
getId = () => id++
schemaBuilder.connect().then(function(db) {
todoDb = db;
item = db.getSchema().table('Item');
var rows = [
item.createRow({
'id': getId(),
'color': 'red',
"age": 10
}),
item.createRow({
'id': getId(),
'color': 'red',
"age": 10
}),
item.createRow({
'id': getId(),
'color': 'red',
"age": 30
}),
item.createRow({
'id': getId(),
'color': 'red',
"age": 5
}),
item.createRow({
'id': getId(),
'color': 'red',
"age": 7
}),
item.createRow({
'id': getId(),
'color': 'green',
"age": 10
}),
item.createRow({
'id': getId(),
'color': 'green',
"age": 20
}),
item.createRow({
'id': getId(),
'color': 'blue',
"age": 15
}),
item.createRow({
'id': getId(),
'color': 'yellow',
"age": 20
}),
item.createRow({
'id': getId(),
'color': 'yellow',
"age": 5
}),
item.createRow({
'id': getId(),
'color': 'blue',
"age": 5
}),
];
return db.insertOrReplace().into(item).values(rows).exec();
})
.then(function() {
var excludeAges = [7]
var ageNotIn = lf.op.not ( item.age.in(excludeAges) )
var ageRanges = [
[2, 6],
[10, 15]
] // between 2..6 OR 10..15
var colors = ["red", "blue"]
//var ageWhere = ages.map((v) => item.age.eq(v))
var ageBetweenWhere =
lf.op.or(
...ageRanges.map(v => item.age.between(v[0], v[1]))
)
var colorWhere = item.color.in(colors)
...