{"_id":"dyngodb2","_rev":"63-5d72d69bb21bddef14121fa3bd70a717","name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","dist-tags":{"latest":"0.1.30"},"versions":{"0.1.0":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.0","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.0","_shasum":"c48d326a1cf0bac679dec126a83f3957b5b838b0","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"c48d326a1cf0bac679dec126a83f3957b5b838b0","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.0.tgz","integrity":"sha512-nvb1vdB+vNyeON3TyJ1aX9GS8ORJIfL+iB4zmD6camfSRMX+RjtzG+/ouTAhSL+GBjbPAKgyuKM7pkKk0akw9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt5zLPPlMVXEQC55GwAwbLGd0j7dAdA3WWiAtPdgpn+AIhALJeUcRs1Hn5aUToT5AKVD9ojvLAztKlGUuKepHJgYiX"}]}},"0.1.1":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.1","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.1","_shasum":"18f125bdfb2031c0d40d202a2218365b1f02148e","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"18f125bdfb2031c0d40d202a2218365b1f02148e","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.1.tgz","integrity":"sha512-Q/ttDPU8v6+nJgwGBC/m0xjq4ewTj+fB2dxC/SfCbok1pqDPlbRSNT5dJ03EdHKqP6RyVfzBNJdEZ58llJuxsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEnX0eiG+09EzcAR19zSFjyejASjmwoiVoOinjHN6PfBAiEAuP5UV7KAbSRohHf4Mlh7chIsNIhten9+ZFp/IdYxjSA="}]}},"0.1.2":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.2","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.2","_shasum":"d9482b653543131326689d9e4ea4b729cab204b0","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"d9482b653543131326689d9e4ea4b729cab204b0","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.2.tgz","integrity":"sha512-1YRjJp283VittkAjMLLeSdFPWByE4qw76uc0L++7n9KucQb0cJbbsoEyawMMCJpiLTyw3ri5blE5Dg4rOSrwBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD21VGSuVJUMnO2w5C8wEhn17EFU/QMq6NCxlLq+9eqRAIgMJiAuItbq+oIkeUryiofVYayFKUKeYXS4DITJsn+Bsc="}]}},"0.1.3":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.3","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.3","_shasum":"2ae40de6fce115b3c1aa37c96560fec504d73b8e","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"2ae40de6fce115b3c1aa37c96560fec504d73b8e","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.3.tgz","integrity":"sha512-lSYgtBWsJpAwH6WkkcF23O7awGGuvowNGabLCZej4CfBnjiRce2a+6xihiLnSgl8OKopcuslSoL6/kxVgT0iMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuw2lGByF2d2+UN5qca08srcvy6ljhtmROCPm/GgeRDQIhAM2WL0ATGJsnRnlM2ZeQuROWR2CXfgKgQ6kBDSr2FG2+"}]}},"0.1.4":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.4","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.4","_shasum":"f7a6c78e84085c501431cd15d272a2c8471cd7e2","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"f7a6c78e84085c501431cd15d272a2c8471cd7e2","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.4.tgz","integrity":"sha512-4EjahewRj5Piy0gI7pED+4Ry7o1uoG61WNunNtgkBCc/Uv0meY3d3IrLth0Zg1gNNCu+YhGfLEJlF3VaWZQz1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwPa7jTuXglOoso+9txnzEbCMHk0Porf7YX+rIlFBj1AiBh4CSUtO72cW4y6W6l1CYKIfgXtCa+KYAAdx37Y12w5A=="}]}},"0.1.5":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.5","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.5","dist":{"shasum":"6c6ecbea09009700cbaea8a1aac717f94af97848","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.5.tgz","integrity":"sha512-kBL+ZLEv7IOvuzP0ioY30y7uqIsEAXC1hXy5CVJbcATcL+4evCrlE42DcM1epOCamAtP6SeVWJx0F8iSCm4BXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCItaiiJnr4rptG2fE4Y5ZN9NweFpBVkCGjqhw5/BqbDwIgGaUX+/kvttHNJsSOyceqPKnpZ03Ak8013IcIG2OkOT4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.6":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.6","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.6","dist":{"shasum":"183ae4ea895bab37a4fe61c0fac2e6dbb476382a","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.6.tgz","integrity":"sha512-mqCHFhmYN8cPkjQVTjFNB47p0bkyNBk4c1hL6jrG4AbbCimhV3X2mJNj+e04wqWj/VQZ5Pp2JULWO7awlPV8yA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1N5wuZ4Vq9/QulN40WfadhDheQtznY6hR/5pYgZlaNwIhAMhCjSxrny2MFEJ6bDzZzcw+0tRFtEP5sG1TG1whI2Ua"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.7":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.7","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.7","dist":{"shasum":"43d088fd0d1e34a59af0222de858f2b9a0aec5c9","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.7.tgz","integrity":"sha512-r5GewUt8v01CN3iYAV6IPBAf6s4VjBYFl0URNgpVfh7yJQgpsmkDFAy7Ae3uaIGQ+SwjFK2KFt9dO97YZV6FJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAGpSm/mrII2hgKEEdKnpXzSu24ohYh2jw0KcvHbg/bcAiEArkSXg8o5C2NPGYbWPXMQ7sQIfCR7LYpg3kbdrC12STY="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.8":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.8","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.3","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.4","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.8","dist":{"shasum":"db4985df56420d9364fc1ad0e9fa13e03afc003d","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.8.tgz","integrity":"sha512-82THrwGCvPTAesBW6qsXZ+DVj/F+qX79VjZFuSnzR9Ir80I33m64idQdGU6bweCdlO8T70kaxEAD8Ad7Giizhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKifgLvFwXNq8j3ykGeFU3hG2yS7SB7DN9feMetQ5qPAIgc3K0y+m8zcRcTFv5R458xgFsud/Vrr6MmQEgH22U608="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.9":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.9","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.7","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.7","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.9","_shasum":"0df8be2e552b8558d6597e2dfd62bc014f0f9873","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"0df8be2e552b8558d6597e2dfd62bc014f0f9873","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.9.tgz","integrity":"sha512-lZWMUA14UFXRz/QiCL/GFSdJFWKpuyjZ8TD7Ue1aU9Dr06eH3DplT2YZDEwytxEu9x6A7Df2p5388xQs20Z9Fg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDYVnWB5+o5QeGro0QVVKMvzfV7PgTUAtTOrno5mTSdQAiEAnvlEkPHoEVok2rhVJjvVX+f9pff9bDm38bWzmeqYuik="}]}},"0.1.10":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.10","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"node-uuid":"~1.4.0","async":"~0.2.9","underscore":"~1.5.1","aws-sdk":"~1.4.1","deep-diff":"~0.1.7","colors":"~0.6.1","ret":"~0.1.6","querystring":"~0.2.0","optimist":"~0.6.0","csv":"~0.3.6","node-zip":"~1.0.1","carrier":"~0.1.13","circularclone":"~0.1.7","gson":"~0.1.3"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.10","_shasum":"472d5acbc3e7f3ed6c0b2e85cb78056ef547fe43","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"472d5acbc3e7f3ed6c0b2e85cb78056ef547fe43","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.10.tgz","integrity":"sha512-7fDTnWcZc+/04KwXBvPFqaMcZMf5vN6pD7CHP/VKQr8BS1r8WDzgjreipAbE2YtM213OCd0TYwrUVMW8543v2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFifm2Xf9xzXbhtPVfWixYU71OeRB13GCARaKj+E3wf5AiAdsSlJDI+VG+3EhOzL7MIRCrHanJ5b7VF1wWs5Lr6Uvw=="}]}},"0.1.11":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.11","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.11","_shasum":"6c9092c133212e14d33749ec5726295a47c33732","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"6c9092c133212e14d33749ec5726295a47c33732","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.11.tgz","integrity":"sha512-IsFEYafz8FnHo1ph/BV5zBA0eWSsDzb3n48IMImnnXkUXBRCqR/sgt5Y4NmJSeDdLwxSI6nI6OPBIgPjuu+6qA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIClh73B3PkNKgEsh3crvhPkybUh15WDWI0dBqRKku1HzAiARYhltYotyu1437W0hzxv8KFT+CEy8giT9hpLImgm7vg=="}]}},"0.1.12":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.12","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.12","_shasum":"fb5aa49d6fed1776eab9cddfbde6bfc5c2e23a45","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"fb5aa49d6fed1776eab9cddfbde6bfc5c2e23a45","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.12.tgz","integrity":"sha512-SaBTky9ubBP3+cm3u7UxhRBHxJSmjr1Np3KdxyxqHbzg38TJ05RP8OgIAtV9LvQfNQTOuCk+P1xtHvwmurX0GA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZew40vkbJbCFS3+VMz1bMynp7DPIJFQfu3EysWQWtpwIhAK3bWfFM/igOb5fB/yqlO+Gnfq9t/+0PGTzz5PVAM0je"}]}},"0.1.13":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.13","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.13","_shasum":"9797f16dcfdfe1c49e5665afd4e7b857c88040b6","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"9797f16dcfdfe1c49e5665afd4e7b857c88040b6","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.13.tgz","integrity":"sha512-538avGaeuRVDBAVo9C2VRBEVPKElzQ+UZzwkPtyNq1QblUqEz0eY/PKzCQZ5oni2ARpapMm5PHBoShhyOkCrFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDF8z5ZKwbWZezjn6WcVsq59vpJCNqgXI1epZw1bP8CpAIgGjnr7tE0KcXqMCDbt7Rp0zzIFy7P7ZBQAGuTRFOr/zo="}]}},"0.1.14":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.14","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.14","_shasum":"f175388e63739c2c108b3e03f136b5f6337ab0b7","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"f175388e63739c2c108b3e03f136b5f6337ab0b7","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.14.tgz","integrity":"sha512-Lqn+hAC/NJEMQAHM9lMO/CFT1hNqQAgUoaSZHzgoW/EsT2M5PEJ4oFIFh1ubMAuHz75C24aEPv8p++CgGLlhIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDEXnD9ji118yPX/mHjcpFd+93VVfyz619BhOtD1fvkcAiEAkMDo/qapXxlvEKiFvbbNlp2IFiMKoJ+fhdFIn+5Yi34="}]}},"0.1.15":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.15","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.15","_shasum":"730bc1df07ba4b6b82506cfe62bc11005f01a1f4","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"730bc1df07ba4b6b82506cfe62bc11005f01a1f4","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.15.tgz","integrity":"sha512-Ly8lmW5T67TcBwXQY5aBgqbNOELBXOjvWNZDIhCMO/jh3K+AWPse8P33qEnIc+aod3141LUTSodaNaRdIt+dAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzmB78KUB8n3M6lUcyMx88BmwSYpbri3HRJja+1UB6vgIgax5fdMSvSjOBQPdJY46CxzZc6t4dx405798cyhALgPU="}]}},"0.1.16":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.16","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.16","_shasum":"8d1f0b65ea6eb9e9b4be50cd7b8e35db5a718770","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"8d1f0b65ea6eb9e9b4be50cd7b8e35db5a718770","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.16.tgz","integrity":"sha512-9TdJ+Lf6ph/hTLWnN++lS1KLXHyPIxjQIBlkNa5m1+4PoqZcftOQdE88xipj3N40S4ZZpkfK+7O8D55J5R+QIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEIF3HjsNdYOApUl9mTknwiZ1CLG4kGko8kgwTe26xlAIgdWAoUYm3gvWBNnbcfMqitJ732iM8/x/DkLFwU2awoiw="}]}},"0.1.17":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.17","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.17","dist":{"shasum":"8eab5ed2d971974d2f8b1dcb11738b0256e65a04","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.17.tgz","integrity":"sha512-T39a/aTcIEzCH0nGErWQ0/LY12zh6Ojx3w8eX2IEgST1C1NHvru/0nSZUr7mTPqhfiPt95+T7Z6TJIf8HTR9FQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLSiEzN71Wo0dXyDFEUJkYY1UDznvKoWiACQ/YHcgCWAiATpRXY8qQke+htXWTdsCb7mtdC5tLY3P7E7072GeLlzA=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.18":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.18","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"~0.2.9","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.18","_shasum":"384c9f277315866797c8d1679154414009b07301","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"384c9f277315866797c8d1679154414009b07301","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.18.tgz","integrity":"sha512-UpfNcijqmuYmFtHFdXPwx6cGKMytGpNcL09LOauVNDxVBAk4KazHs5cOIKlNtX9nSp+9UhxTenK0r2SNO/GKsg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG7sO8WU7vzec3HpJ2m3f0P0kc52NsTFI5dXWwIImw8VAiEA9Z/hjK8gi3jVLy/ye7RIVSr47dfHVurF7QDwQrpfB0U="}]}},"0.1.19":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.19","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.19","_shasum":"a198c42ea0a4df1f6ecd7a659eea40594d3d70e7","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"a198c42ea0a4df1f6ecd7a659eea40594d3d70e7","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.19.tgz","integrity":"sha512-qYJrc6Y7w7eMV529nfeOPtvycqv8I228/XVaFBAZCivbqhfBjizxyK6zkuJzt+TPpFlrlnyedX6lF/IifeqOSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIvwXy/iraoJcAuFsytWMU5HCbwtmpVElLCQKSpp40qgIgHcu3NKnPaqtKCAHN16s707T+w5IjZn8EoySCwfe9quQ="}]}},"0.1.20":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.20","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.20","dist":{"shasum":"ab2f7da713923807936c14d0bf916bda5f3c38a1","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.20.tgz","integrity":"sha512-eo6GXDE2QR3+5kzIcMHvaP1/Znc/XNT7aGosRg76OfYfkcIEfGUqDsLgTC1pzwsWhKxJP0RXVbgKLG7ad1KlWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzvYaQpJQABc5NrzQNLsQsgybjVleS+MiKXjgvZ2A6awIge3xGsswG+UheNvc0fHcdVCNh9njURj4facXwJ1jXl1A="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.21":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.21","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.21","_shasum":"e612d53ec7020b11680c63f5423bac2b27666a4c","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"dist":{"shasum":"e612d53ec7020b11680c63f5423bac2b27666a4c","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.21.tgz","integrity":"sha512-y9RhCASPFfpjrVXunIWV3/ygSGBqXz/AkEstkEg0AVZurKUMLTBpQ4gvrr/DdRa9HERbQvo+Ghcc1AWobSgqWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD71sgkR8tCg0d25x9X1cqqJiqDZemOUSDnBsmnIsejUgIhAOsbNmEK4XYMhE6QKSkI5RtmNPopD8vBiqS7eje4ZVm5"}]}},"0.1.22":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.22","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.22","dist":{"shasum":"2c9956611c1ca106afb3bd31996e91ded5cfa45a","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.22.tgz","integrity":"sha512-7pN6vtFBIqYOOQbMPhwnTyHZDKMmdXJgYKM6OrIdBEOnhB3Y54Pl5BFC5LvZujt4MWyIT9mBdVDSaWi/RItICg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDrSDTR1kzvmaCJoo1YMXj1242zJ5HdkD9B2FZISes4NAiEAuv/irEb/bO1u39J0KtOiPnhsIboqq6pYygs/DG9Zmvo="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.23":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.23","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.23","dist":{"shasum":"2d4e66d18ec66dd0c4ce6ca28ff2c08ee90309ea","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.23.tgz","integrity":"sha512-gDFGNKhF775m/iqZHtPTYBWqy09ExZ1DZFOFwpteCE3prNQxOJNDjXnOlj64T6z3FMxLc4o31lqfBuFBGlRD7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpGiHYUEfeuI7X5JPx2t5uo8Z+Pf9+Qi4Ng1oJdYeM3AIhANvEvSPWciyNPwha6QqBDR5FuZvErHws9yJTIJJDIid7"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.24":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.24","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.24","dist":{"shasum":"cafca35fe41d8c809ccd759fc6d9f8d80763ed13","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.24.tgz","integrity":"sha512-JMQwuuOwGKbOsEtaowXrlKfxIUw7n5BaEBsu2c1gP5QnghO0Qcb5rztOwdAcdAzHnm+Re2G+H+Oap59zdl0pig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrYtP9LQMmgNwVSwn41sIB3AvPa6CqLw4Zq7wY7mTvtwIhAJUv0VZON+CsejGz7dSqfCnO07aQK8815dRgGImGahg5"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.25":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.25","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.25","dist":{"shasum":"0c8bfb89f3d0d045c73231fd425289e43a391ca4","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.25.tgz","integrity":"sha512-roMKFI+BxCXo+6pu4IXeHDtz2eju9fvFLJMlamZx+9KdWdDeIDDOwvPgjzqgJGstpiHMxyV+ks8eFQfWjDgBlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7W2TBS+3Gj04SZ4Qg4MV5ZSyxkdAxCktos3IFXUPHrwIgWa9zROIojNC6msXaq6E2AmNjvTQkUrfHEWjtreaM7gE="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.26":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.26","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.26","dist":{"shasum":"bdc939f73095bfc2949ffb25ce90d115e3c05138","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.26.tgz","integrity":"sha512-R5+aEqSz5dRmBxJVnwjhf3UiZdCdmhaZbHFJa93CSFvG0zbbizW8CqZG6z0kDuDHatBnWr0yc3HVVKu5hLlwDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpsnKoFcfh6nixcbNq9Fhb+TpYFPJkpwjAwUmohRnekQIgMkOEPnGSQUfR+Ca4Wj352nbkFt/t1fXKvn10dF9jTdM="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.27":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.27","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.27","dist":{"shasum":"45c386e7cd1fd058295750634395674f3d52bb9a","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.27.tgz","integrity":"sha512-8gy0Kj/lC8m+oXR9Y0aHSuJDEx9DZGN38SZ/c+xdBvDJxa+4RF+KaJJWvxEX1k0xXpTI7V3SrhG3903BQjjBEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYvKbcfr8Ae36SJIdU6NPTAj9YtfDqmFwIIgesawcGbQIgQNqSIei26pO1F2CGHo5k8taE90RUglEmU79PN47zgFE="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.28":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.28","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.28","dist":{"shasum":"3f32531faeeeed76d7ec74c1b9cc2d1428a70248","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.28.tgz","integrity":"sha512-E3HSezTqnqcXgI+nEVJ5N4G8O5I19Uw1kHDZxpWR6lrvTDgHSJCTG917AEM0cZfhRRP65SLC32bN+jQZycn7RQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdOnz0qF7Q1LsIRxq1TAh/qajnlnZVqU5oQp7DBaYzAgIhAJopDIoTdBBklfnS7/GjiGiIrcz8fts4qGn0qGvU1U+9"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.29":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.29","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~1.4.1","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"http://github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb","_id":"dyngodb2@0.1.29","dist":{"shasum":"b9d239de50d3689f5609ce7d79703860dd8aa28c","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.29.tgz","integrity":"sha512-xJfPupytTdoShTU+bR6kxA6T5oWlinoECT1GkAMHi3f1TiukA2kbzlxMQZjKyoyZosa69b0yGWZ7ymCR3RnyZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7dxhdRS5TF2eq9EA32SYjO5qVQeSleop2vKdC5FTzCAiA/aSIQ41WB3kKUCt7fuuAGIU1mlsHgrCH+9p9ZKll4gw=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}]},"0.1.30":{"name":"dyngodb2","description":"An experiment (alpha) to get a MongoDB like interface in front of DynamoDB","version":"0.1.30","main":"Gruntfile.js","bin":{"dyngodb2":"./cli.js"},"engines":{"node":">= 0.8.0"},"keywords":["mongodb","dynamodb"],"dependencies":{"async":"^0.2.10","aws-sdk":"~2.5.5","carrier":"~0.1.13","circularclone":"~0.1.7","coffee-script":"^1.7.1","colors":"~0.6.1","csv":"~0.3.6","deep-diff":"~0.1.7","gson":"~0.1.3","knox":"^0.9.0","knox-copy":"^0.2.2","knox-mpu":"^0.1.6","node-uuid":"~1.4.0","node-zip":"~1.0.1","optimist":"~0.6.0","querystring":"~0.2.0","ret":"~0.1.6","underscore":"~1.5.1"},"repository":{"type":"git","url":"git+ssh://git@github.com/aaaristo/dyngodb.git"},"preferGlobal":true,"devDependencies":{"chai":"~1.8.1","chai-spies":"^0.5.1"},"gitHead":"7a6dd1a3af465afdf67f0a506032cfe0b8137a5b","bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"homepage":"https://github.com/aaaristo/dyngodb#readme","_id":"dyngodb2@0.1.30","scripts":{},"_shasum":"bc1c88ef99afdcf04ba44022c6b604e2e10405e2","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.0","_npmUser":{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"},"dist":{"shasum":"bc1c88ef99afdcf04ba44022c6b604e2e10405e2","tarball":"https://registry.npmjs.org/dyngodb2/-/dyngodb2-0.1.30.tgz","integrity":"sha512-CPH/0gw0Vm3+vjAd1Plp8f8jXbNVbr2g2xHI8EKv3uOGJ1DwbNXFp8P6i5TOKS4Ba5ph5OtepqvAe3AwV73h0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBYYCVRk83XExnmNW+6/QZMyviQZ9D9JpaVm+Ja2ajC4AiBnSWCfT1Blw+Q/fr0fvUS00llv0EBcWTrxmgsXGWrK8Q=="}]},"maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/dyngodb2-0.1.30.tgz_1473087180303_0.8485242458991706"}}},"readme":"dyngodb2 [![Stories in Ready](https://badge.waffle.io/aaaristo/dyngodb.png)](http://waffle.io/aaaristo/dyngodb)\n========\n\nAn **experiment** ([alpha](http://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha)) to get a [MongoDB](http://www.mongodb.org/) *like* interface in front of [DynamoDB](http://aws.amazon.com/dynamodb/)\nand [CloudSearch](http://aws.amazon.com/cloudsearch/). Now supporting transactions as described by the [DynamoDB Transactions](https://github.com/awslabs/dynamodb-transactions/blob/master/DESIGN.md) protocol.\n\nIn dyngodb2 we dropped the $ sign in favor of _. Also $version now is called _rev. The old branch is available [here](https://github.com/aaaristo/dyngodb/tree/dollar). Fixes to the old version will be released under the dyngodb npm package while the new releases are under the dyngodb2 npm package.\n\n\n## Why?\n\nDynamoDB is *elastic*, *cheap* and greatly integrated with many AWS products (e.g. [Elastic MapReduce](http://aws.amazon.com/elasticmapreduce/),\n[Redshift](http://aws.amazon.com/redshift/),[Data Pipeline](http://aws.amazon.com/datapipeline/),[S3](http://aws.amazon.com/s3/)),\nwhile MongoDB has a wonderful interface. Using node.js on [Elastic Beanstalk](http://aws.amazon.com/elasticbeanstalk/)\nand DynamoDB as your backend you could end-up with a very scalable, cheap and high available webapp architecture.\nThe main stop on it for many developers would be being able to productively use DynamoDB, hence this project.\n\n## Getting started\nPlaying around:\n<pre>\n$ npm install -g dyngodb2\n</pre>\n<pre>\n$ export AWS_ACCESS_KEY_ID=......\n$ export AWS_SECRET_ACCESS_KEY=......\n$ export AWS_REGION=eu-west-1\n$ dyngodb2\n> db.createCollection('test')\n> db.test.create({ _id: 'john', name: 'John', lname: 'Smith' }) // if the _id exists create will throw an error\n> db.test.save({ name: 'Jane', lname: 'Burden' })\n> db.test.findOne({ name: 'John' })\n> john= last\n> john.city= 'London'\n> db.test.save(john)\n> db.test.update({ _id: 'john' },{ $inc: { wives: 1, childs: 3 } }) // uses DynamoDB updateItem ADD op\n> db.test.find({ name: 'John' })\n> db.test.ensureIndex({ name: 'S' })\n> db.test.findOne({ name: 'John' })\n> db.test.ensureIndex({ $search: { domain: 'mycstestdomain', lang: 'en' } }); /* some CloudSearch */\n> db.test.update({ name: 'John' },{ $set: { city: 'Boston' } });\n> db.test.find({ $search: { q: 'Boston' } });\n> db.test.findOne({ name: 'Jane' }) /* some graphs */\n> jane= last\n> jane.husband= john\n> john.wife= jane\n> john.himself= john\n> db.test.save(john);\n> db.test.save(jane);\n> db.ensureTransactionTable(/*name*/) /* some transactions :) */\n> db.transaction()\n> tx.test.save({ name: 'i\\'ll be rolled back :( ' })\n> tx.rollback(); /* your index is rolled back too */\n> db.transaction()\n> tx.test.save({ name: 'i\\'ll be committed toghether with somenthing else' })\n> tx.test.save({ name: 'somenthing else' })\n> tx.commit(); /* your index is committed too */\n> db.test.remove()\n> db.test.drop()\n</pre>\n\n## Goals\n\n* support a MongoDB *like* query language\n\n* support slice and dice, Amazon EMR and be friendly to tools that integrates with DynamoDB\n  (so no compression of JSON objects for storage)\n\n* support graphs, and respect object identity\n\n* prevent lost-updates\n\n* support transactions ([DynamoDB Transactions](https://github.com/awslabs/dynamodb-transactions))\n\n* support fulltext search\n\n## What dyngodb actually does\n\n* Basic find() support (basic operators, no $and $or..., some projection capabilities):\n  finds are implemented via 3 components:\n\n      * parser: parses the query and produce a \"query\" object that is \n                used to track the state of the query from its beginning to the end.\n\n      * finder: tries to retrive less-possible data from DynamoDB in the fastest way\n\n      * refiner: \"completes\" the query, doing all the operations that finder was not able\n                 to perform (for lack of support in DynamoDB or because i simply \n                 haven't found a better way).\n\n* Basic save() support: DynamoDB does not support sub-documents. So the approach here is to\n  save sub-documents as documents of the table and link them to the parent object like this:\n\n       <pre>\n       db.test.save({ name: 'John', wife: { name: 'Jane' } }) \n       => 2 items inserted into the test table\n       1:      { _id: '50fb5b63-8061-4ccf-bbad-a77660101faa',\n                 name: 'John',\n                 __wife: '028e84d0-31a9-4f4c-abb6-c6177d85a7ff' }\n       2:      { _id: '028e84d0-31a9-4f4c-abb6-c6177d85a7ff',\n                 name: 'Jane' }\n       </pre>\n       \n       where _id is the HASH of the DynamoDB table. This enables us to respect the javascript object \n       identity as it was in memory, and you will get the same structure - even if it where a cyrcular graph -\n       (actually with some addons _id, _rev...) when you query the data out:\n\n       db.test.find({ name: 'John' }) => will SCAN for name: 'John' return the first object, detects __wife\n       (__ for an object, ___ for an [array](#arrays)) and get (getItem) the second object. Those meta-attributes are kept\n       in the result for later use in save().\n\n* Basic update() support: $set, $unset (should add $push and $pull)\n\n* Basic lost update prevention\n\n### Finders\n\nThere are 3 types of finders actually (used in this order):\n\n* Simple: manage _id queries, so the ones where the user specify the HASH of the DynamoDB table\n\n* Indexed: tries to find an index that is able to find hashes for that query\n\n* Scan: fails back to [Scan](http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html)\n  the table :(, that you should try to avoid probably indexing fields,\n  or changing some design decision.\n\n### Indexing\n\nIndexes in dyngodb are DynamoDB tables that has a different KeySchema, and contains the data needed\nto lookup items based on some attributes. This means that typically an index will be used with a\n[Query](http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html) operation.\n\nThere are actually 2 indexes (4 but only 2 are used):\n\n* [fat](http://dictionary.reference.com/browse/fat).js: as the name suggests it is a pretty heavy \n  \"general purpose\" index that will generate many additional writes: 1 for every field indexed + 1.\n  Lets see an example:\n\n  Suppose to have a table like this:\n  <pre>\n  { type: 'person', category: 'hipster', name: 'Jane', company: 'Acme' }\n  { type: 'person', category: 'hacker', name: 'Jack', city: 'Boston' }\n  { type: 'person', category: 'hustler', name: 'John', country: 'US' }\n  { type: 'company', category: 'enterprise', name: 'Amazon', phone: '13242343' }\n  { type: 'company', category: 'hipster', name: 'Plurimedia' }\n  </pre>\n  \n  And an index like:\n  <pre>\n  db.test.ensureIndex({ type: 'S', category: 'S', name: 'S' });  \n  </pre>\n  \n  The index will be used in queries like:\n  <pre>\n    db.test.find({ type: 'person' }).sort({ name: -1 })\n    db.test.find({ type: 'person', category: 'hipster' })\n  </pre>\n  \n  and will NOT be used in query like this\n  <pre>\n    db.test.find({ name: 'Jane' })\n    db.test.find({ category: 'hipster', name: 'Jane' })\n    db.test.find().sort({ name: -1 })\n  </pre>\n\n  and will be used partially (filter on type only) for this query:\n  <pre>\n    db.test.find({ type: 'person', name: 'Jane' })\n  </pre>\n  \n  So columns are ordered in the index and you can only use it starting with the first\n  and attaching the others as you defined it in ensureIndex() with an EQ operator or\n  the query (finder) will use the index until the first non EQ operator and then the refiner\n  will filter/sort the rest. Local secondary indexes are created an all indexed attributes,\n  to support non-EQ operators, that means that actually you can index only 5 attributes with\n  this kind of index.\n  \n  There is also some support for [$all](http://docs.mongodb.org/manual/reference/operator/query/all/) operator:\n  the fat index can index set fields, actually saving the combinations in the index so that you can query them.\n  ***NOTE***: if you have long set fields this will seriously impact write throughput.\n  \n  <pre>\n    db.test.save({ type: 'person', name: 'Jane', tags: ['hipster','hacker'] })\n    db.test.ensureIndex({ tags: 'SS' })\n    db.test.find({ tags: 'hipster' })\n    db.test.find({ tags: { $all: ['hipster','hacker'] } })\n  </pre>\n\n  Inspired by [Twitter Bloodhound](https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md), and \n  [Google Code Search](http://swtch.com/~rsc/regexp/regexp4.html), i recently added a completely experimental $text \n  field to the fat.js index so you can do fulltext searches without using CloudSearch, that is actually too \n  expensive for small apps.\n  \n  <pre>\n    db.test.save({ type: 'person', name: 'Jane', about: 'she is the mom of two great childs', tags: ['hipster','hacker'] })\n    db.test.ensureIndex({ name: 'S', $text: function (item) { return _.pick(item,['name','about']); } })\n    db.test.find({ $text: 'mom childs' }) // should return Jane\n    db.test.find({ name: 'Jane', $text: 'mom child' }) // should return Jane, $text is chainable with other fields\n    db.test.find({ name: 'John', $text: 'mom child' }) // should return an empty resultset\n  </pre>\n  \n  As you can see you create a $text function in the ensureIndex to manage what fields you want the index to\n  make fulltext-searchable, then you can use a $text field in the query to specify your search terms. The values,\n  are whitespace tokenized and [trigrams](http://swtch.com/~rsc/regexp/regexp4.html) are created for every token,\n  so that each item that has a trigram is saved as a range of an hash for that trigram. When you query, the query\n  string is whitespace tokenized and for each token trigrams are computed, then any item having all those trigrams\n  is returned, the order of words in the query string is ignored. NOTE: This will not scale very well for items with \n  large text to index unless you scale the writes for that index, you should balance the cost of your writes compared \n  to the same usage on CloudSearch and pick what is best for you, also keep in mind that CloudSearch offers [a lot \n  more](http://docs.aws.amazon.com/cloudsearch/latest/developerguide/what-is-cloudsearch.html): stemming, i18n, stoplists, results management... \n  \n  \n  \n* cloud-search.js: is a fulltext index using AWS CloudSearch under the covers.\n\n  Suppose to have the same table as before.\n  And an index like:\n  <pre>\n  db.test.ensureIndex({ $search: { domain: 'test', lang: 'en' } });  \n  </pre>\n\n  You can then search the table like this:\n  <pre>\n  db.test.find({ $search: { q: 'Acme' } });\n  db.test.find({ $search: { bq: \"type:'contact'\", q: 'John' } });\n  </pre>\n\n\n* you could probably build your own specialized indexes too.. just copy the fat.js index and\n  add the new your.js index to the indexed.js finder at the top of indexes array.\n  (probably we should give this as a configuration option)\n\n\n### Lost update prevention\n\nSuppose to have two sessions going on\n\nSession 1 connects and read John\n<pre>\n$ dyngodb2\n> db.test.find({ name: 'John' })\n</pre>\n\nSession 2 connects and read John\n<pre>\n$ dyngodb2\n> db.test.find({ name: 'John' })\n</pre>\n\nSession 1 modifies and saves John\n<pre>\n> last.city= 'San Francisco'\n> db.test.save(last)\ndone!\n</pre>\n\nSession 2 modifies and tries to save John and gets an error\n<pre>\n> last.country= 'France'\n> db.test.save(last)\nThe item was changed since you read it\n</pre>\n\nThis is accomplished by a _rev attribute which is incremented\nat save time if changes are detected in the object since it was read\n(_old attribute contains a clone of the item at read time).\nSo when Session 2 tries to save the object it tries to save it\n[expecting](http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html#DDB-PutItem-request-Expected) the item to have _old._rev in the table and it fails\nbecause Session 1 already incremented it.\n\n***note:*** when you get the above error you should reread the object you where trying to save,\nand eventually retry your updates, any other save operation on this object will result in bogus\nresponses.\n\n### Arrays\n\nActually dyngodb is pretty incoherent about arrays, infact it has two kinds of array persistence: \n\n* DynamoDB supports sets which are basically javascript _unordered_ arrays of strings or numbers or binary data,\n  so if dyngodb detects an array of one of those types it persists it like a set (hence loosing its order):\n\n  <pre>\n    db.test.save({ name: 'John', tags: ['developer','hipster','hacker','cool'] })\n  </pre>\n\n\n* Object arrays _are kept in order_ (see [Schema](#schema)): \n\n  <pre>\n    db.test.save({ name: 'John', sons: [{ name: 'Konrad' },{ name: 'Sam' },{ name: 'Jill' }] })\n  </pre>\n  \n  this is accomplished via the _pos RANGE attribute of the collection table. So saving the object above\n  would result in 4 items inserted in the DynamoDB table where 2 HASHes are generated (uuid):\n  \n  <pre>\n  1. { _id: 'uuid1', _pos: 0, name: 'John', ___sons: 'uuid2' }\n  2. { _id: 'uuid2', _pos: 0, name: 'Konrad' }\n  3. { _id: 'uuid2', _pos: 1, name: 'Sam' }\n  4. { _id: 'uuid2', _pos: 2, name: 'Jill' }\n  </pre>\n  Finding John would get you this structure:\n  \n  <pre>\n    db.test.find({ name: 'John' })\n    \n    { \n      _id: 'uuid1',\n      _pos: 0,\n      name: 'John',\n      ___sons: 'uuid2',\n      sons: [\n               {\n                  _id: 'uuid2',\n                  _pos: 0,\n                  name: 'Konrad'\n               },\n               {\n                  _id: 'uuid2',\n                  _pos: 1,\n                  name: 'Sam'\n               },\n               {\n                  _id: 'uuid2',\n                  _pos: 2,\n                  name: 'Jill'\n               }\n            ]\n    }\n  </pre>\n  \n\n  This means that the array is strored within a single hash, with elements at different ranges,\n  which may be convinient to retrieve those objects if they live toghether with the parent object,\n  or as a list. Which is probably not true for sons...\n  So for the case where you \"link\" other objects inside the array, like:\n  \n  <pre>\n    konrad= { name: 'Konrad' };\n    sam= { name: 'Sam' };\n    jill= { name: 'Jill' };\n    db.test.save(konrad)\n    db.test.save(sam)\n    db.test.save(jill)\n    db.test.save({ name: 'John', sons: [konrad,sam,jill,{ name: 'Edward' }] })\n  </pre>\n  \n  here konrad, sam and jill are \"standalone\" objects with their hashes, that will be linked to the array,\n  while Edward will be contained in it. So in this case things are store like this:\n  \n  <pre>\n  1. { _id: 'konrad-uuid', _pos: 0, name: 'Konrad' }\n  2. { _id: 'sam-uuid', _pos: 0, name: 'Sam' }\n  3. { _id: 'jill-uuid', _pos: 0, name: 'Jill' }\n  4. { _id: 'uuid1', _pos: 0, name: 'John', ___sons: 'uuid2' }\n  5. { _id: 'uuid1', _pos: 0, name: 'John', ___sons: 'uuid2' }\n  6. { _id: 'uuid1', _pos: 0, name: 'John', ___sons: 'uuid2' }\n  7. { _id: 'uuid2', _pos: 0, _ref: 'konrad-uuid' }\n  8. { _id: 'uuid2', _pos: 1, _ref: 'sam-uuid' }\n  9. { _id: 'uuid2', _pos: 2, _ref: 'jill-uuid' }\n  10. { _id: 'uuid2', _pos: 3, name: 'Edward' }\n  </pre>\n\n  Now you see the _ref here and you probably understand what is going on. Dyngo stores array placeholders\n  for objects that *lives* in other hashes. Obviously, finding John you will get the right structure:\n  \n  <pre>\n    db.test.find({ name: 'John' })\n    \n    { \n      _id: 'uuid1',\n      _pos: 0,\n      name: 'John',\n      ___sons: 'uuid2',\n      sons: [\n               {\n                  _id: 'konrad-uuid',\n                  _pos: 0, // dereferenced from _ref so you get the standalone object with 0 _pos\n                  name: 'Konrad'\n               },\n               {\n                  _id: 'sam-uuid',\n                  _pos: 0,\n                  name: 'Sam'\n               },\n               {\n                  _id: 'jill-uuid',\n                  _pos: 0,\n                  name: 'Jill'\n               },\n               {\n                  _id: 'uuid2',\n                  _pos: 3,\n                  name: 'Jill'\n               }\n            ]\n    }\n  </pre>\n\n\n* Arrays of arrays or other type of: they don't work. actually never tested it.\n\n  <pre>\n    db.test.save({ name: 'John', xxx: [[{},{}],[{}],[{}]] })\n    db.test.save({ name: 'John', xxx: [{},[{}],2] })\n  </pre>\n\n### Schema\n\nIn dyngodb you have 3 DynamoDB table KeySchema:\n\n* the one used for collections where you have _id (string) as the HASH attribute and _pos (number) as the range attribute.\n  _id, if not specified in the object, is autogenerated with an UUID V4. _pos is always 0 for objects not contained in\n  an array, and is the position of the object in the array for objects contained in arrays (see [Arrays](#arrays)).\n\n* the one used for indexes where you have _hash (string) as HASH attribute and _range (string) as the range attribute.\n  _hash represents probably the container of the results for a certain operator. and _range is used to keep the key\n  attributes of the results (_id+':'+_pos).\n\n* the one used for transaction tables where you have _id (string) as HASH attribute and _item (string) as the range attribute. _id represents the transaction id. _item can be (_) the transaction header item, or some kind of item copy:\n\n  1. the target item to put when the transaction should be applied (target::table::hash attr::hash value::range attr::range value)\n  2. the copy of the item to rollback (copy::table::hash attr::hash value::range attr::range value)\n\nSome automatically generated attributes:\n\n* _id: the object identifier (if not set manually)\n* _pos: the object position in an array\n* _rev: the revision of the object\n* _refs: an array of _id/s referred by the object (indexable as a string set see fat.js)\n* ___&lt;attr name&gt;: placeholders for arrays\n* __&lt;attr name&gt;: placeholders for objects\n* _tx: the transaction locking the item\n* _txLocked: the time when the transaction locked the item\n* _txApplied: the transaction has already modified this item, but is not committed\n* _txTransient: the transaction inserted the item to lock it\n* _txDeleted: the transaction is going to delete the item on commit\n\n\n### Transactions\n\nIn dyngodb2 there is basic support for transactions take a look at the [tests] (https://github.com/aaaristo/dyngodb/blob/master/test/transaction.test.js). \nIt is an initial implementation of the protocol described [here](https://github.com/awslabs/dynamodb-transactions/blob/master/DESIGN.md).\nAll the db.* APIs are still *non-transactional*, while tx.* APIs: that are really \nthe same as db.* behaves in a transactional way. Once you get a transaction by\ncalling db.transaction() you can operate on any number of tables/items and any modification\nyou do is committed or rolledback with the others performed in the same transaction \n(this is true also for items generated by indexes like fat.js, while cloud-search.js\nfulltext search is still non-transactional). \n\n***Keep in mind that this is completely experimental at this stage.***\n\n### Local\n\nIt is possible to use [DynamoDB Local](http://aws.typepad.com/aws/2013/09/dynamodb-local-for-desktop-development.html) by adding *--local* to the commandline:\n<pre>\ndyngodb --local\n</pre>\n\n### .dyngorc\n\nUsing the *.dyngorc* file you can issue some commands before using the console (e.g. ensureIndex)\n\n### standard input (argv by [optimist](https://github.com/substack/node-optimist))\n\n*commands.txt*\n<pre>\ndb.test.save([{ name: argv.somename },{ name: 'Jane' }])\ndb.test.save([{ name: 'John' },{ name: 'Jane' }])\ndb.test.save([{ name: 'John' },{ name: 'Jane' }])\n</pre>\n\n<pre>\ndyngodb2 --somename Jake  &lt; commands.txt\n</pre>\n\n### Streams (for raw dynamodb items)\n\nExample of moving items between tables with streams (10 by 10):\n<pre>\ndyngodb2\n> t1= db._dyn.stream('table1')\n> t2= db._dyn.stream('table2')\n> t1.scan({ limit: 10 }).pipe(t2.mput('put')).on('finish',function () { console.log('done'); })\n</pre>\n\n### basic CSV (todo: stream)\n\nExample of loading a csv file (see [node-csv](https://github.com/wdavidw/node-csv) for options)\n<pre>\ndyngodb2\n> csv('my/path/to.csv',{ delimiter: ';', escape: '\"' },['id','name','mail'])\n> last\n> db.mytbl.save(last)\n</pre>\n\n### basic XLSX\n\nExample of loading an xlsx file\n<pre>\ndyngodb2\n> workbook= xlsx('my/path/to.xlsx') \n> contacts= workbook.sheet('Contacts').toJSON(['id','name','mail'])\n> db.mytbl.save(contacts)\n</pre>\n\n### Provisioned Throughput\n\nYou can increase the througput automatically (on tables and indexes),\ndyngodb will go through the required steps until it reaches\nthe required value.\n\n<pre>\ndyngodb2\n> db.mytbl.modify(1024,1024)\n> db.mytbl.indexes[0].modify(1024,1024)\n</pre>\n\n### Export / import (todo: stream)\n\nExport:\n<pre>\ndyngodb2\n> db.mytbl.find()\n> db.cleanup(last).clean(function (d) { gson('export.gson',d); });\n</pre>\n\nImport:\n<pre>\ndyngodb2\n> db.mytbl.save(gson('export.gson'));\n</pre>\n\nYou can use either json or [gson](https://github.com/aaaristo/GSON) function the only difference is that the gson function\nis able to serialize cyrcular object graphs in a non-recursive way.\n\n### S3 Backup / Restore (todo: better streaming)\n\nBackup:\n<pre>\ndyngodb2\n> db.mytbl.backup({ bucket: 'mybucket' })\n</pre>\n\nThis will create an S3 object named mybucket/table/time.bck\n\nRestore:\n<pre>\ndyngodb2\n> db.createCollection('mytbl')\n> db.mytbl.restore({ bucket: 'mybucket', file: 'mybucket/table/time.bck' });\n</pre>\n\n### Q&D migration from dyngodb to dyngodb2\n\n<pre>\ndyngodb\n> db.mytbl.find()\n> db.cleanup(last).clean(function (d) { gson('export.gson',d); });\ncat export.gson | sed 's/\"$id\"\\:/\"_id\":/g' > export2.gson\ndyngodb2\n> db.mytbl.save(gson('export2.gson'));\n</pre>\n\nThings you may need to update:\n\n  * your .dyngorc \n  * your code $id -> _id (e.g. sed -i '.old' 's/$id/_id/g' *)\n\n### AngularJS and Express integration\n\nCheck: [https://github.com/aaaristo/angular-gson-express-dyngodb](https://github.com/aaaristo/angular-gson-express-dyngodb)\n\n### Help wanted!\n\nYour help is highly appreciated: we need to test / discuss / fix code, performance, roadmap\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/aaaristo/dyngodb/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n","maintainers":[{"name":"aaaristo","email":"andrea.gariboldi@gmail.com"}],"time":{"modified":"2022-06-16T02:56:49.399Z","created":"2014-05-10T15:09:45.414Z","0.1.0":"2014-05-10T15:09:45.414Z","0.1.1":"2014-05-10T16:50:27.607Z","0.1.2":"2014-05-10T16:52:34.305Z","0.1.3":"2014-05-10T20:04:54.140Z","0.1.4":"2014-05-18T12:48:51.992Z","0.1.5":"2014-05-19T12:45:57.962Z","0.1.6":"2014-05-19T13:15:21.860Z","0.1.7":"2014-05-19T15:11:43.320Z","0.1.8":"2014-05-20T12:44:49.226Z","0.1.9":"2014-05-21T14:37:27.572Z","0.1.10":"2014-05-23T10:22:27.561Z","0.1.11":"2014-05-24T13:13:56.770Z","0.1.12":"2014-05-25T22:26:18.185Z","0.1.13":"2014-05-25T22:59:53.007Z","0.1.14":"2014-05-27T21:27:40.834Z","0.1.15":"2014-05-30T14:37:28.424Z","0.1.16":"2014-06-02T20:20:14.873Z","0.1.17":"2014-06-10T16:46:22.436Z","0.1.18":"2014-06-10T19:48:46.220Z","0.1.19":"2014-06-25T10:06:55.503Z","0.1.20":"2014-07-09T17:00:32.527Z","0.1.21":"2014-07-18T16:11:26.993Z","0.1.22":"2014-08-04T11:00:03.354Z","0.1.23":"2014-08-04T11:47:11.346Z","0.1.24":"2014-08-04T13:11:38.260Z","0.1.25":"2014-08-04T13:30:35.330Z","0.1.26":"2014-08-04T14:35:50.930Z","0.1.27":"2014-08-18T10:15:49.101Z","0.1.28":"2014-08-18T14:54:20.659Z","0.1.29":"2014-08-19T10:25:10.655Z","0.1.30":"2016-09-05T14:53:02.532Z"},"homepage":"https://github.com/aaaristo/dyngodb#readme","keywords":["mongodb","dynamodb"],"repository":{"type":"git","url":"git+ssh://git@github.com/aaaristo/dyngodb.git"},"bugs":{"url":"https://github.com/aaaristo/dyngodb/issues"},"readmeFilename":"README.md"}