documentDb 的奇怪结果
Strange results with documentDb
我在 documentDb 数据库中执行了两个查询。
第二个查询比第一个更严格,但我得到了第一个查询中没有的寄存器。
第二个查询return我在第一个查询中等待的'9ad1b2c0-3084-4903-b9a2-f8fa8e30d3a4'id...
我在 Azure 门户的查询浏览器中使用我的文档数据库尝试了这些查询,结果相同。
查询:
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 } ]
这是因为使用惰性索引模式而发生的。
顾名思义,惰性索引是作为相对于写入的低优先级进程执行的,并为 "eventually consistent results" 查询提供服务。
为避免此问题,您应该在 documentCollection 中将索引模式更改为 "Consistent"。
我在 documentDb 数据库中执行了两个查询。
第二个查询比第一个更严格,但我得到了第一个查询中没有的寄存器。
第二个查询return我在第一个查询中等待的'9ad1b2c0-3084-4903-b9a2-f8fa8e30d3a4'id...
我在 Azure 门户的查询浏览器中使用我的文档数据库尝试了这些查询,结果相同。
查询:
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 } ]
这是因为使用惰性索引模式而发生的。
顾名思义,惰性索引是作为相对于写入的低优先级进程执行的,并为 "eventually consistent results" 查询提供服务。
为避免此问题,您应该在 documentCollection 中将索引模式更改为 "Consistent"。