gpt4 book ai didi

node.js - 查询结果达到 500+ 后,Mongoose find 查询与 populate 在 Azure MongoDB 上返回错误

转载 作者:可可西里 更新时间:2023-11-01 10:38:36 24 4
gpt4 key购买 nike

我对 MongoDB、Mongoose 和 Azure 环境都很陌生。我在执行特定查询时遇到问题,该查询运行良好。但当预期查询结果超过 500 条后,就会产生错误。结果为累计报告,最多可有1200条记录。结果是由 2 个具有人口的集合生成的。以下是我的 node.js/express api 函数,它生成结果。

index: (req, res, next) => {
Store.find({isChecked: true}).batchSize(1200)
.populate('lastCheckResult').exec(function (err, stores) {
if (err) {
console.log(err);
return next(err);
}
else {
res.locals.stores = stores;
return next();
}
});
},

以下是来自 Azure Web 应用程序(node.js)的错误。

"Message: {"errors":[{"severity":"Error","location":{"start":0,"end":75279},"code":"SC3004","message":"The SQL query exceeded the maximum number of 'OR' operators. The allowed limit is 500."}]} ActivityId: 96ebe198-0000-0000-0000-000000000000, Request URI: /apps/32fe74cb-f1dd-4433-bfbf-ba15991cdee1/services/d914c6a9-eb86-43d8-9108-4ee395d25345/partitions/aa7a586e-7f30-4a02-99e4-8a21d2dc8295/replicas/131759772120608879s, RequestStats: ResponseTime: 2018-07-30T10:54:11.9018240Z, StoreReadResult: StorePhysicalAddress: rntbd://10.0.0.48:14000/apps/32fe74cb-f1dd-4433-bfbf-ba15991cdee1/services/d914c6a9-eb86-43d8-9108-4ee395d25345/partitions/aa7a586e-7f30-4a02-99e4-8a21d2dc8295/replicas/131759772120608879s, LSN: 2965, GlobalCommittedLsn: 2964, PartitionKeyRangeId: 0, IsValid: True, StatusCode: 0, IsGone: False, IsNotFound: False, IsInvalidPartition: False, RequestCharge: 1, ItemLSN: -1, ResourceType: Document, OperationType: Query , SDK: Microsoft.Azure.Documents.Common/2.0.0.0"

有人能帮我解决或解决此类问题吗?

最佳答案

The SQL query exceeded the maximum number of 'OR' operators. The allowed limit is 500.

根据您的错误日志,我推测您正在使用 Cosmos DB Mongo API。事实上,CosmosDB 是一个独立的服务器实现,并不直接与 MongoDB 服务器版本和功能保持一致。

CosmosDB 支持 MongoDB API 的子集,并将请求转换为 CosmosDB SQL 等效项。 CosmosDB 有一些不同的行为和结果。但 CosmosDB 有责任改进对 MongoDB 的模拟。

我建议您可以拆分每批的查询数据数量来暂时避免此限制。我还搜索了与限制相关的类似案例:The SQL query text exceeded the maximum limit of 30720 characters in Azure CosmosDB .

当然,您可以添加反馈 here获得官方帮助或考虑使用 MongoDB Atlas如果您需要完整的 MongoDB 功能支持,请在 Azure 上使用。

希望对您有帮助。

关于node.js - 查询结果达到 500+ 后,Mongoose find 查询与 populate 在 Azure MongoDB 上返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com