2016-01-05 16 views
6

MongoDB docs for DBREFs ki: Eğer DBRefs kullanmak için cazip bir nedeniniz yoksaMongoDB belgeleri neden DBREF kullanmıyor?

yerine manuel referansları kullanın.

Neden? DBREF'lerin kullanımı daha kolay görünüyor, çünkü veri tabanını ve koleksiyon adlarını kodlarlar, bu da uygulamada daha az kodlamaya neden olur. Ayrıca, DBREF a standard format that many drivers understand'dur.

Bu soru ile ilgili, ancak tam olarak aynı değildir:

MongoDB - is DBREF necessary?

Bu sorunun cevabı/denormalization gömme bağlama tercih edilir ancak niye kılavuzun soruya cevap olmamasıdır DBREF'lere bağlantı tercih edilir.

+2

7 Kısacası, çoğu durumda, çoğu DBRef'te aynı koleksiyon adını saklamakla kalmazsınız çünkü bu, belgelerinizin boyutunu engeller. – JohnnyHK

+0

@JohnnyHK, bu iyi bir nokta, ancak WiredTiger depolama motorunu kullanırken geçerli olmayabilir https://www.mongodb.com/blog/post/new-compression-options-mongodb-30 –

cevap

1

Burada tüm görüntülediğim bir sonuç var.

DBRef kullanımı join işlemi, otomatik olarak ikinci veya daha fazla kez sorgulayacaktır, bu koleksiyon alanlarında ne kadar var sahip olduğunuza bağlıdır bağlı DBRef. onun modeli 10 DBRef olan bir koleksiyona sahip varsayarsak

, 10 elemanların bunun listesi ve DBRefreally needed olan bunlardan biri için sorgu yapmak. Sorguladıktan sonra, Mongodb bu DBRef'a ihtiyacınız olursa olsun otomatik olarak 101(1 + 10*10) sorgularını çalıştıracaktır. Bu alanı el ile sorgularsanız, yalnızca birkaç kodlama ve yalnızca 11(1 + 1*10) sorgusuna ihtiyaç vardır.

Peki, ne diyorsunuz?

+0

sesleri doğru, işaretlemek için mutlu Doğrulayabildiğim kadarıyla: Bu bilgi için bir kaynağınız var mı, yoksa nasıl doğrulanacaksınız? –

+0

Eh, şimdi test edildi. Profilleri mongodb'de etkinleştiririm ve A Sınıfı için bir sorgulama yaparım. Bu, 3 B DBRef 'alanları B Sınıfı ile. Sorgu 4 A döndürür. Günlükte, A koleksiyonunda 1 sorgu ve B koleksiyonunda 12 sorgu gösterilir. Kendiniz test edebilirsiniz, yorum mesajını günlüğe yapıştırmak zor. – Kroderia

+0

Ayrıca, "önyükleme-başlangıç-veri-mongodb" günlüğünde, yalnızca bir sorguyu gösterir. – Kroderia

İlgili konular