2015-06-01 11 views
5

anahtar önekini kullanarak birden çok belgeyi alma, sorgu dizesi olarak anahtar önekini kullanarak birden çok belgenin alınabilmesi ve sağlanan anahtar öneki ile anahtar başlangıcına sahip tüm anahtar/değer çiftlerini döndürmesi (operatör türü gibi) şey)? Görüntüleme veya sorguları/endeksleri kullanmadan. Ben anahtarları bu sunumun Slide 51 gösterilme şeklini tasarlamaCouchbase - Couchbase DB'de

http://www.slideshare.net/Couchbase/couchbase-103-data-modeling

+1

gibi bir şeyler yapabilirsiniz. Bunun için bir görünüm kullanmak istememenizin bir nedeni var mı? Görünümü veya sorguyu yalnızca getirmeniz gereken gerçek kimlikleri anlatabileceğinizi ve normal KV API'lerini kullananları getireceğinizi aklınızdan çıkarmayın. –

cevap

10

bir görünüm veya n1ql sorgu kullanmak istemiyorsanız, bilmeden belgeleri almak için bir yolu yoktur onların kesin anahtarlar. Yani, istemci tarafındaki olası anahtarları önceden oluşturmak için bir yol varsa, sadece önek tabanlı anahtarlarınızı alabilirsiniz. Kullanıcı-1, Kullanıcı-2 ... Kullanıcı-n. n1ql ile zaten tüm belge tuşlarını birincil indeksine sahip olacaktır çünkü

Bununla birlikte, herhangi bir ek endeksleri oluşturmadan önek sorguda size n1ql içinde bahsediyoruz tür yapabilirsiniz. Böylece, "SELECT META(myBucket).id FROM myBucket WHERE META(myBucket).id LIKE "prefix%";

+0

Bir ekstra N1QL ile iyiyim! Bu çok yararlı bir hile :) Teşekkürler. Çocukların her bir ekleme/silme işleminde güncellenmesi gereken ana kullanıcı: id {} nesnesinde, başvurulan çocuk belgeleri dizini yerine bir tane daha fazla N1QL kullanmayı tercih etmeliyim. ne düşünüyorsun? –

+1

Performans gereksinimlerinizin ne olduğuna bağlıdır. Çocuk dokümanlarının kimliklerini almak için bir referans dokümanı kullanmak daha hızlı bir şekilde geri kazanım sağlayacaktır. Ancak, esas olarak manuel bir endeks olanı korumak, çok daha fazla geliştirme çalışması olacaktır. Performansın yeterince iyi olup olmadığını söylerdim, en basit yaklaşımı, yani bu durumda n1ql kullan. –