Apache CouchDB anahtarlarına göre ara

3 Cevap php

O Apache CouchDB anahtar değerine göre arama mümkün mü? (Okunabilmesi için aralıklı) aşağıdaki örnek verileri göz önüne alındığında:

{
"_id":"a754a63dcc7f319b02f7ce6de522ca26",
"_rev":"1-5bd88e53fe0869b8ce274b49a2c1ddf5",
"name":"john smith",
"email":"jsmith@example.com",
"username":"jsmith"
}

Ben kullanıcı jsmith için veya e-posta jsmith@example.com sahip kullanıcı için veritabanını sorgulamak misiniz? Bunu nasıl hakkında gitmek istiyorsunuz?

Teşekkürler!

3 Cevap

Evet, bu kesinlikle mümkündür. Sen listeler sıralanır manzaralı bir çift, verilerinizi ("index"), anahtar başına bir yaratacaktır.

Tobias link yararlıdır. Ancak standart CouchDB belgelerine de bu kapsayacaktır:

Örneğin, tasarım belgede, size email alanına dayalı tuşları ile bir users_by_email görünümü isteyebilirsiniz; o zaman fonksiyon sadece doğru çalışma olsun, ve sonra kalıcı tasarım belgede saklamak kadar username alanında, vb Futon yılında geçici manzaralı Deney üzerinde anahtarlı bir users_by_name görünümü.

İyi şanslar!

P.S. Tek bir görünümde tüm bu gereksinimleri birleştirmek için bir yol yoktur. Kısaca, sen ["email", "jsmith@example.com"] üzerine anahtarı olabilir veya ["name": "john smith"], ancak unutmayın CouchDB rahat: Yukarıda basit bir yöntem iyi çalışır. Eğer manzaralı konforlu hale geldiğinde, bu "harmanlanmış" tarzı keşfedebilirsiniz.

Bir KeyValue arama yapamazsınız. Sadece tuşları ile arama yapabilirsiniz.

Eğer e-posta aramak istiyorsanız, bazı görünümünde [email, ne olursa olsun veri] yayarlar ve ?key='search email' url görüntülemek için ekleyin.

Sadece anahtarları tarafından aranıyor büyük bir performans fayda verir ve [anahtar değerine göre arama] dolayısıyla bu özellik hiç CouchDB gelmeyecek.