Goal: Perform the basic bucket operations where Eventing interacts with the Data service.
- 
This function basicBucketOps merely demonstrates Eventing’s Basic Bucket Accessors or BucketOps.
 - 
Requires Eventing Storage (or metadata collection), a "source" collection, and a "destination" collection.
 - 
Needs a Binding of type Bucket Alias (as documented in the Scriptlet).
 - 
Will operate on any mutation where doc.type === "basic_bkt_ops".
 - 
The final document is deleted, as such the output is the Application log file.
 - 
For more detail refer to Bucket Accessors
 
- 
basicBucketOps
 - 
Input Data/Mutation
 - 
Output Data/Logged
 
// To run configure the settings for this Function, basicBucketOps, as follows:
//
// Version 7.1+
//   "Function Scope"
//     *.* (or try bulk.data if non-privileged)
// Version 7.0+
//   "Listen to Location"
//     bulk.data.source
//   "Eventing Storage"
//     rr100.eventing.metadata
//   Binding(s)
//    1. "binding type", "alias name...", "bucket.scope.collection", "Access"
//       "bucket alias", "dst_col",       "bulk.data.destination",   "read and write"
//
// Version 6.X
//   "Source Bucket"
//     source
//   "MetaData Bucket"
//     metadata
//   Binding(s)
//    1. "binding type", "alias name...", "bucket",     "Access"
//       "bucket alias", "dst_col",      "destination", "read and write"
function OnUpdate(doc, meta) {
  // filter out non-interesting docs
  if (doc.type !== "basic_bkt_ops") return;
  // Assuming 'dst_col' is a bucket alias binding in this case to a non source bucket
  log("OnUpdate got mutation for id",meta.id,"doc",doc);
  // make a key based on the meta.id of the input mutation
  var dst_key = "dst_" + meta.id;
  // make a document to write, include the input mutation's doc
  var doc_to_wr = {"status":3, "mutation": doc};
  // this is a bucket SET operation.
  dst_col[dst_key] = doc_to_wr;
  log("wrote DOC to dst_col with id",dst_key,doc_to_wr);
  // this is a bucket GET operation.
  var doc_read = dst_col[dst_key];
  log("read DOC from dst_col with id",dst_key,doc_read);
  // this is a bucket DEL operation.
  delete dst_col[dst_key];
  log("deleted "+dst_key+" from dst_col");
}
INPUT: KEY basic_bkt_ops::1
{
  "type": "basic_bkt_ops",
  "id": 1,
  "test": true
}
2021-07-18T17:56:56.021-07:00 [INFO] "read DOC from dst_col with id" "dst_basic_bkt_ops::1" {"status":3,"mutation":{"type":"basic_bkt_ops","id":1,"test":true}}
2021-07-18T17:56:56.021-07:00 [INFO] "deleted dst_basic_bkt_ops::1 from dst_col"
2021-07-18T17:56:56.020-07:00 [INFO] "wrote DOC to dst_col with id" "dst_basic_bkt_ops::1" {"status":3,"mutation":{"type":"basic_bkt_ops","id":1,"test":true}}
2021-07-18T17:56:56.019-07:00 [INFO] "OnUpdate got mutation for id" "basic_bkt_ops::1" "doc" {"type":"basic_bkt_ops","id":1,"test":true}