2016-07-25 3 views
1

Я пытаюсь получить doc_ids в couchbase cordova в формате uuid. В настоящее время, любой документ, который вставляется имеет _id S как - -AexsV4lbjOoH-AdlN1Fi0W, --mpIWIHza6CQEJEHRxPKba и т.д.Couchbase Cordova - doc_ids | Нужно получить uuids

Моя установка имеет такой характер, что _ids должна быть UUID, как Cordova приложение будет сохранять локальную БД в составе универсального MongoDB на сервере. (Таким образом, на сервере БД хранится несколько локальных БД). Следовательно, мне нужно _ids быть UUID,

Я быстро исследование о том, как создать UUID, в JS и нашли немало ответов, как -

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

, который генерирует UUID, как d6414228-b07c-4bd2-9aa3-d1df8b548de6 Так что мой вопрос - Есть ли прямой путь внутри couchbase phonegap плагин для достижения этого напрямую?

ответ

1

При написании документа в Couchbase Lite вы можете либо позволить базе данных выбрать случайный идентификатор (он будет уникальным), либо указать его.

Вы можете отправить запрос POST, чтобы база данных сгенерировала идентификатор документа.

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

Итак, единственный способ - создать пользовательские идентификаторы? –

Смежные вопросы