2016-11-23 63 views
2

我有兩個查詢,我在一個documentDb數據庫中執行。奇怪的結果與文檔DB

第二個查詢比第一個更嚴格,但我得到的是我不得到第一個查詢的寄存器。

第二個查詢返回,我在第一個查詢正在等待「9ad1b2c0-3084-4903-b9a2-f8fa8e30d3a4」身份證......

我想在Azure的門戶網站在查詢瀏覽器這些查詢我的文檔db數據庫具有相同的結果。

查詢:

1)

SELECT c.id FROM c where c.BatchInfo.Id='1b47970d-df41-41f6-8666-16017f50db55' 

結果:

[ 
     {id : efc31b18-15b0-477c-9cbd-ee74b489b6e2 }, 
     {id : c43a654a-5a1a-47a4-b3ce-28629db16c38 }, 
     {id : aef97bcc-ea26-4c3e-9591-ff68ea1d4293 } 
    ] 

2)

SELECT c.id FROM c where c.id= '9ad1b2c0-3084-4903-b9a2-f8fa8e30d3a4' and c.BatchInfo.Id='1b47970d-df41-41f6-8666-16017f50db55' 

結果:

[{id : 9ad1b2c0-3084-4903-b9a2-f8fa8e30d3a4 } ] 

回答

4

這發生在使用懶惰索引模式。

懶索引顧名思義低至相對於寫入優先級的進程執行,並提供「最終一致的結果」來查詢。

爲了避免這個問題,你應該改變你的索引模式在documentCollection爲「一致」。

+0

謝謝,我嘗試了一致的索引模式,現在它很好。我不明白爲什麼插入後一天,索引懶惰不會運行良好...... –