我们正在使用Azure cosmos DB,并且正在使用mongo API从Java访问它
一些通常使用大约4 RU的简单查询有时大约需要1500 RU,而我们得到的消息是“速率太大”。
如果我们从azure门户用户界面中进行相同的查询,我们将始终获得较低的RU消耗
示例文档:
{
"_id": {
"$oid": "5c40a6e3f6fe4d1fec5f092e"
},
"attempts": 0,
"status": {
"confirmed": false,
"nSent": true
}
...
rest of non relevant fields
}
如果我将查询翻译为SQL,将如下所示:
SELECT * FROM c WHERE c.status.confirmed = true and (c.status.nSent=null or c.status.nSent=false) and (c.attempts=null or c.attempts<10)
2个重要说明:
天青在其日志中看到的查询示例:
(((r1["p1"]["p2"] = true) AND (((r1["p1"]["p3"] ?? null) = null) OR (r1["p1"]["p3"] = false))) AND ((((r1["p4"] ?? null) = null) OR (r1["p4"] <= 10)) AND (r1["p5"] >= 67)))","parameters":[]}"}}
我也试图替换查询的这一部分
(c.status.nSent=null or c.status.nSent=false)
与
(c.status.nSent!=true)
希望它也适用于不具有此属性但结果相同的文档
我们的平均RU / s使用率为40 RU / s,我们的限制为4000 RU / s,因此此查询中应该有很多备用RU / s
除此以外,我们看到以下内容:
RequestCharge: 0.38