DocDb

2016-04-08 13 views
1

sorgu sonucu biçimindeki farklılıklar C# sınıfındaki bir DocDB koleksiyonuna erişimi silerim ve daha gelişmiş sorguları eşleme konusunda biraz acı yaşarsınız. Ben json bazı farklılıklar fark Sorgu Explorer kullanarak hata ayıklamak çalışırken döndürdü: DocDb

select c from collection c 

[{ "c" : { "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}}] 

dönecektir

[{ "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}] 

ise

select * from collection 

dönecektir Lütfen hayır buz, sonuçların bir "c" özelliğinin altında nasıl yuvalandığını!

Bu fark, adlandırılmış seçimleri kullanan ve C# kitaplığı eşlemesinin bir türe dönüşüne neden olan sorgular oluşturmam gerektiğinde sorunlara neden oluyor gibi görünüyor. Böyle bir sorgunun bir örneği çünkü

select c from collection c join n in c.names WHERE n.name = "first" 

seçimi için 'c' (* izin verilmez) bu yüzden iç eşleme kullanmalıdır Bu sorgu doğru sonuç sayısını verir ancak her döndürülen öğe eşlenmedi (muhtemelen json özelliklerini en üst düzeyde ve "c" özelliğinin altında beklemez.

Harita sonuçlarının adlandırılmış sonuç özelliğinin altında yuvalandığını anlamak için DocumentQuery C# api (nuget sürüm 1.5.3'ten) nasıl alabilirim bilen var mı?

cevap

2

SELECT clause altında okuduktan sonra C# sürücüsünü tekrar mutlu kılan jsonu döndüren VALUE anahtar sözcüğü buldum.

Yani benim sorgu okuma bitmelidir

select value c from collection c join n in c.names WHERE n.name = "first"