Couchbase 科尔多瓦 - doc_ids |需要获取uuid

Couchbase Cordova - doc_ids | Need to get uuids

我试图让 couchbase cordova 中的 doc_ids 成为 uuid 格式。 目前,插入的任何文档都有 _ids,例如 - -AexsV4lbjOoH-AdlN1Fi0W--mpIWIHza6CQEJEHRxPKba

我的设置的性质是 _id 需要是 uuid,因为 cordova 应用程序会将本地数据库保存为服务器上通用 MongoDB 的一部分。 (因此服务器上的数据库将存储多个本地数据库)。因此,我需要 _ids 为 uuids

我快速研究了如何在 JS 中创建 uuid,并找到了很多答案,例如 -

/**
 * Fast UUID generator, RFC4122 version 4 compliant.
 * @author Jeff Ward (jcward.com).
 * @license MIT license
 * @link 
 **/
var UUID = (function() {
  var self = {};
  var lut = []; for (var i=0; i<256; i++) { lut[i] = (i<16?'0':'')+(i).toString(16); }
  self.generate = function() {
    var d0 = Math.random()*0xffffffff|0;
    var d1 = Math.random()*0xffffffff|0;
    var d2 = Math.random()*0xffffffff|0;
    var d3 = Math.random()*0xffffffff|0;
    return lut[d0&0xff]+lut[d0>>8&0xff]+lut[d0>>16&0xff]+lut[d0>>24&0xff]+'-'+
      lut[d1&0xff]+lut[d1>>8&0xff]+'-'+lut[d1>>16&0x0f|0x40]+lut[d1>>24&0xff]+'-'+
      lut[d2&0x3f|0x80]+lut[d2>>8&0xff]+'-'+lut[d2>>16&0xff]+lut[d2>>24&0xff]+
      lut[d3&0xff]+lut[d3>>8&0xff]+lut[d3>>16&0xff]+lut[d3>>24&0xff];
  }
  return self;
})();

生成类似 d6414228-b07c-4bd2-9aa3-d1df8b548de6 的 uuid 所以我的问题是——在 couchbase phonegap 插件中是否有直接的方法来直接实现这一点?

将文档写入 Couchbase Lite 时,您可以让数据库选择一个随机 ID(它将是唯一的)或指定一个。

您可以发送 POST 请求让数据库生成文档 ID。

curl -H 'Content-Type: application/json' \
     -vX POST 'http://localhost:5984/app' \
     -d '{"name": "john"}'

{"id":"-UwALc1GlcAcG60uag1oMf1","rev":"1-10dc5637dc2ccb55e007440cca73a415","ok":true}

或者指定一个 PUT 请求。

curl -H 'Content-Type: application/json' \
     -vX PUT 'http://localhost:5984/app/john' \
     -d '{"name": "john"}'

{"id":"john","rev":"1-10dc5637dc2ccb55e007440cca73a415","ok":true}

请注意,从那时起您必须指定当前修订的修订号才能在文档上保存更新。

curl -H 'Content-Type: application/json' \
     -vX PUT 'http://localhost:5984/app/john?rev=1-10dc5637dc2ccb55e007440cca73a415' \
     -d '{"name": "johnny"}'