CRUD - aalfiann/fly-json-odm GitHub Wiki

CRUD in json array with fly-json-odm.

Table of Contents

Example Data

Any CRUD below will use this example data json array.

var data2 = [
    {id:1,address:'bandung',email:'[email protected]'},
    {id:2,address:'jakarta',email:'[email protected]'},
    {id:3,address:'solo',email:'[email protected]'},
    {id:4,address:'solo, balapan',email:'[email protected]'},
    {id:5,address:'surabaya',email:'[email protected]'}
];

var data2insert = [
    {id:6,address:'madiun',email:'[email protected]'},
    {id:7,address:'malang',email:'[email protected]'}
];

var data2update = [
    {id:3,address:'solo',email:'[email protected]'},
    {id:4,address:'solo, balapan',email:'[email protected]'}
];

var data2modify = [
    {id:3,email:'[email protected]',about:'I was born in solo'},
    {id:4,email:'[email protected]',about:'Balapan city is the best',located:'Central Java'}
];

Back to top

Insert

var data = nosql.set(data2)
  .insert({
    id:6,
    address:'madiun',
    email:'[email protected]'
  })
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Insert Multiple

var data = nosql.set(data2)
  .insertMany(data2insert)
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Back to top

Update

var data = nosql.set(data2)
  .update('id',5,{
    address:'ponorogo',
    email:'[email protected]'
  })
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Update Multiple

var data = nosql.set(data2)
  .updateMany('id',data2update)
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Back to top

Modify

var data = nosql.set(data2)
  .modify('id',5,{
    address:'ponorogo',
    email:'[email protected]',
    about:'Just ordinary programmer'
  })
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Modify Multiple

var data = nosql.set(data2)
  .modifyMany('id',data2modify)
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Back to top

Delete

var data = nosql.set(data2)
  .delete('id',5).exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Delete Multiple

var data = nosql.set(data2)
  .deleteMany('id',[5,2])
  .exec();

// test output
console.log(data);
// result
data2 = nosql.shallowClone(data);
console.log(data2);

Back to top

Note

  • Update, Modify and Delete operations in fly-json-odm is rely on unique key for performance speed reason.
  • insert(), update(), modify() and delete() operations above is for single row data.
  • update() and modify() will act like append so the order will be changed and make sure the id must be unique or your data table will be broken.
  • updateMany() and modifyMany() for multiple row data (support for single row data) and the order will not changed.
  • You are not allowed to use setMode('shallow') for modifyMany() because multiple modify process required the object reference to keep the old data object. If we don't disable it, this will going to break your original data array.