2016-11-23 65 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

谢谢,我尝试了一致的索引模式,现在它很好。我不明白为什么插入后一天,索引懒惰不会运行良好...... –