2016-07-25 5 views
1

Ich versuche, die doc_ids in couchbase cordova im UUID-Format zu bekommen. jede doc Derzeit, die eingeführt wird, hat _id s wie - -AexsV4lbjOoH-AdlN1Fi0W, --mpIWIHza6CQEJEHRxPKba usw.Couchbase Cordova - doc_ids | Benötigen Sie UUIDs

Mein Setup von solcher Art ist, dass die _ids müssen UUIDs als cordova App wird die lokale DB als Teil eines universellen sparen MongoDB auf dem Server. (Die DB auf dem Server wird mehrere lokale DBs gespeichert haben). Daher muss ich die _ids UUID

Ich habe eine schnelle Forschung, wie erstellen UUID in JS und fand schon einige Antworten wie sein -

/** 
* 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; 
})(); 

die UUID wie d6414228-b07c-4bd2-9aa3-d1df8b548de6 Also meine Frage erzeugt ist - gibt es einen direkten weg innerhalb von couchbase phonegap plugin, um dies direkt zu erreichen?

Antwort

1

Wenn Sie ein Dokument in Couchbase Lite schreiben, können Sie entweder die Datenbank eine zufällige ID auswählen lassen (sie wird eindeutig sein) oder eine angeben.

Sie können eine POST-Anforderung senden, damit die Datenbank die Dokument-ID generiert.

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

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

Oder eine PUT-Anfrage, um eine zu spezifizieren.

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

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

Beachten Sie, dass Sie fortan die Revisionsnummer der aktuellen Revision angeben müssen, um Aktualisierungen im Dokument zu speichern.

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

Ahmm .. wie sage ich Couchebase, um UUIDs anstelle von "zufälliger ID" zu erzeugen? –

+0

Sie nicht, aber Sie können Ihre generierte Uuid anstelle von "John" im obigen Beispiel. – borrrden

+0

So ist die einzige Möglichkeit, benutzerdefinierte IDs zu generieren? –