2015-02-09 10 views
5

numaralı sorguda iki yol karşılaştırılamıyor Microsoft Azure Belgeleri BadRequestException Aralıklı dizine dahil olmayan yollara karşı filtrelerle geçersiz bir sorgu belirtildi. İstekte tarama üstbilgisine izin vermeyi düşünün.DocumentDB -

Benim sorgu: AŞIRI

SELECT c.id FROM users c WHERE (c.lat < 29.89) 

?? doküman sayısı (DocumentDB ile koleksiyonundaki belgenin numarasını almak için bir yol olduğu gibi)

+0

Sorguladığınız verilerin bir örneğini gönderir misiniz? Kullanıcıları tahmin ediyorum.Tam karşılaştırılabilir bir şey değil. Dizeleri olmadıklarına emin misin? –

+0

{: -65,6583190150559, "boylam": "lat" -74,98864685185254, "yaş": 45,79291892424226, "kedi": 32, "id": "f6a82cae-8f57-a9a4-d741-6c9054b2c4ec" } Aralık dizinli olmayan – user2402622

+0

? belki özel seçenekler eklemeliyim? Nodejs required ('documentdb') kullanıyorum. DocumentClient, options: {masterKey: {authKey}} – user2402622

cevap

3

burada blogpost bakarsak: http://azure.microsoft.com/blog/2015/01/27/performance-tips-for-azure-documentdb-part-2/

İndeksleme Politikası İpucu # 3: belirtin aralık indeksi yolu

aralıklarında kullanılan tüm yolların türü DocumentDB şu anda iki dizin yolu türünü destekler: Karma ve Aralık. Karma'nın bir dizin yolu türünü seçmek, verimli eşitlik sorgularını etkinleştirir. Range bir indeks tipi >, <, >=, <=) kullanarak aralık sorguları (sağlıyor seçimi.

O C# bir örnek verir yol karşılaştırılabilir hale getirmek için bir Range Index katmakla kalmıyor node.js library.

zaman benzer işlevleri vardır için Eğer vücut parametreden IndexingPolicy geçebilir, bir koleksiyon oluşturabilir. IndexingPolicy üye bir çift vardır. bunlardan biri de IncludedPaths olup, endeksleri tanımlayabilir burada.

var policy = { 
    Automatic: true, 
    IndexingMode: 'Lazy', 
    IncludedPaths: [ 
     { 
     IndexType: "Range", 
     Path: "path to be indexed (c.lat)", 
     NempericPrecission: "1", 
     StringPrecission: "1" 
     } 
    ], 
    ExcludedPaths: [] 
} 

client.createCollection(
    '#yourdblink', 
    { 
    id: 10001, 
    indexingPolicy: policy 
    }); 
+0

NodeJs isteğinden bir dizin türünün nasıl seçilmesi isteniyor? – user2402622

+0

Dizinleme politikanızı belirttiğinizde bunu yaparsınız. Bunun kod içinde yapılması gerekiyor, yönetici portalında yapılamaz. –

+0

Cevabımıma ekledim. –

1

İlke, (DocumentDB kaynağınız) -> Ayarlar -> Dizin Oluşturma İlkesi'nin altındaki yeni Azure Portalı'nda (https://portal.azure.com) değiştirilebilir.

+0

Bu nasıl ilgilidir (daha da önemlisi, bir cevap)? –

+0

@ivan_pozdeev: Bana yardım ediyor! –

İlgili konular