Skip to content
This repository has been archived by the owner on Dec 24, 2024. It is now read-only.

JSON Client API

nornagon edited this page Oct 16, 2011 · 11 revisions

The JSON API is an easy way to manipulate JSON documents. e.g:

doc.get() // => {'todo':[]}
todo = doc.at('todo')
todo.get() // => []
todo.push('take out the garbage')
doc.get() // => {'todo':['take out the garbage']}
todo.on('insert', function (pos, item) {
  ...
})
todo.on('child op', function (path, op) {
  var item_idx = path[0]
  if (op.si != undefined) {
    // ...
  } else if (op.sd != undefined) {
    // ...
  }
})
  • doc.at(path...)

    Returns a sub-document starting at path. For the document itself, use doc.at(). doc.at can also accept an array as its only argument.

  • subdoc.get()

    Returns the snapshot at the subdocument.

  • subdoc.set(value, cb)

    Sets the document at subdoc to value.

  • subdoc.insert(pos, data, cb) (Strings and lists only)

    Inserts data before the element at pos in the string or list.

  • subdoc.del(pos, length, cb) (Strings only)

    Deletes length characters starting at pos from the string.

  • subdoc.remove(cb)

    Removes the subdocument from the tree.

  • subdoc.push(item, cb) (Lists only)

    Inserts item at the end of the list.

  • subdoc.move(from, to, cb) (Lists only)

    Causes the item at index from to have the index to.

  • subdoc.add(amount, cb) (Numbers only)

    Adds amount to the number.

Events

  • insert

    subdoc.on('insert', function (position, data) { ... })

    (Strings and lists) Emitted when a remote client inserts an item into the list, or inserts text into the string. Call subdoc.get() to get the new value.

  • delete

    subdoc.on('delete', function (position, data) { ... })

    (Strings and lists) Emitted when a remote client removes an item from the list, or deletes text from the string. data contains the item or text that was removed.

  • replace

    subdoc.on('replace', function (position, was, now) { ... })

    (Lists and objects) Emitted when a remote client replaces an element of an object or list. position is the index of the array or the key of the object.

  • move

    subdoc.on('move', function (from, to) { ... })

    (Lists only) Emitted when a remote client moves an element in the list from from to to.

  • add

    subdoc.on('add', function (amount) { ... })

    (Numbers only) Emitted when a remote client adds amount to the number.

  • child op

    subdoc.on('child op', function (path, op) { ... })

    Emitted when a remote operation changes any element contained in subdoc. path is the path below this document, such that subdoc.get()[path[0]][path[1]][...] is the affected element.

Clone this wiki locally