2016-07-25 22 views
1

我正在嘗試在couchbase cordova中獲取doc_ids以uuid格式。 當前,插入任何文檔具有_id就像 - -AexsV4lbjOoH-AdlN1Fi0W--mpIWIHza6CQEJEHRxPKbaCouchbase Cordova - doc_ids |需要獲得uuids

我的設置是這樣的天性,使得_ids必須的UUID作爲科爾多瓦應用程序將在本地數據庫保存爲通用的一部分服務器上的MongoDB。 (因此服務器上的數據庫將存儲多個本地數據庫)。因此,我需要的_ids是的UUID

我做了一個快速研究如何在JS的UUID,發現不少答案一樣 -

/** 
* Fast UUID generator, RFC4122 version 4 compliant. 
* @author Jeff Ward (jcward.com). 
* @license MIT license 
* @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 
**/ 
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插件裏面有直接的方法來直接實現這個嗎?

回答

1

將文檔寫入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"}' 
+0

Ahmm ..所以我如何告訴couchbase生成uuids而不是「random id」? –

+0

你不這樣做,但是你可以在上面的例子中把你生成的uuid替換成「john」。 – borrrden

+0

所以唯一的方法是生成自定義標識符? –