Legacy
Legacy-to-DQL Reference
this article covers example mappings from legacy query apis to dql for basic crud operations as well as syncing data with the sdk creating documents in dql syntax, enclose string literals within single quotes ( '' ); f or example 'blue' use single quotes in dql queries to ensure accuracy incorrectly using double quotes ( "" ); for example "blue" , may prevent document matching currently, ditto does not throw a warning for this issue inserting a single document legacy const newcar = { id '123', color 'blue', } await ditto store collection('cars') upsert(newcar) dql const newcar = { id '123', color 'blue', } await ditto store execute(` insert into cars documents (\ newcar)`, { newcar }) inserting multiple documents legacy // not supported dql const car1 = { id '123', color 'blue', } const car2 = { id '456', color 'red', } await ditto store execute(` insert into cars documents (\ car1),(\ car2)`, { car1, car2 }) inserting initial/default documents this is the ability to insert documents at time 0 for more information see docid\ fw4pwu4bxwmmzieenekef legacy const newcar = { id '123', color 'blue', } await ditto store collection('cars') upsert(newcar, { writestrategy "insertdefaultifabsent" }) dql const newcar = { id '123', color 'blue', } await ditto store execute(` insert into cars initial documents (\ newcar)`, { newcar }) upserting documents legacy supports upserting by default where dql requires the policy to be explicitly set legacy const newcar = { id '123', color 'blue', } await ditto store collection('cars') upsert(newcar) dql const newcar = { id '123', color 'blue', } await ditto store execute(` insert into cars documents (\ newcar) on id conflict do update`, { newcar }) reading data querying data legacy await ditto store collection('cars') find('color == "blue"') dql await ditto store execute(` select from cars where color = 'blue' `) querying data by id legacy await ditto store collection('cars') findbyid('123') dql await ditto store execute(` select from cars where id = '123' `) querying data with limits legacy await ditto store collection('cars') find('color == "blue"') limit(10) dql await ditto store execute(` select from cars where color = 'blue' limit 10 `) querying for null values legacy await ditto store collection('cars') find('color == null') dql await ditto store execute(` select from cars where color is null `) querying with arguments legacy await ditto store collection('cars') find( 'color == $args color', { color 'blue' }) dql await ditto store execute(` select from cars where color = \ color`, { color 'blue' }) observing data changes legacy const observer = ditto store collection('cars') find('color = "blue"') observelocal((result, event) => { // do something }) dql ditto store registerobserver(` select from cars where color = 'blue'`, (result) => { // handle change }) updating documents updating a single document legacy await ditto store collection('cars') findbyid('123') update((mutabledoc) => { mutabledoc at('color') set('red') }) dql await ditto store execute(` update cars set color = 'red' where id = '123' `) updating multiple documents legacy await ditto store collection('cars') find('color == "blue"') update((documents) => { for (const document of documents) { document color = 'red' } }) dql await ditto store execute(` update cars set color = 'red' where color = 'blue' `) updating multiple fields legacy await ditto store collection('cars') findbyid('123') update((mutabledoc) => { mutabledoc at('color') set('red') mutabledoc at('mileage') set(3001) }) dql await ditto store execute(` update cars set color = 'red', mileage = 3001 where id = '123' `) deleting documents evicting documents legacy await ditto store collection('cars') find('color == "blue"') evict() dql await ditto store execute(` evict from cars where color = 'blue' `) deleting documents legacy await ditto store collection('cars') find('color == "blue"') remove() dql // not supported (use evict) syncing data from other peers legacy ditto store collection('cars') find('color == "blue"') subscribe() dql ditto sync registersubscription(` select from cars where color = 'blue' `)