Node.js Mongoose find query with populate在查询结果达到500+;后在Azure MongoDB上返回错误;

Node.js Mongoose find query with populate在查询结果达到500+;后在Azure MongoDB上返回错误;,node.js,mongodb,azure,mongoose,Node.js,Mongodb,Azure,Mongoose,我对MongoDB、Mongoose以及Azure环境都是新手。我在一个具体的问题上遇到了麻烦,这个问题很有效。但在预期查询结果为500+后会产生错误。结果是累积报告,最多可有1200条记录。结果是从2个具有总体的集合生成的。下面是生成结果的node.js/express api函数 index: (req, res, next) => { Store.find({isChecked: true}).batchSize(1200) .populate('lastCheckR

我对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 app(node.js)的错误

消息:{“errors”:[{“severity”:“Error”,“location”:{“start”:0,“end”:75279},“code”:“SC3004”,“Message”:“SQL查询超出了“OR”运算符的最大数目。允许的限制为500。”}]}活动ID:96ebe198-0000-0000-0000-000000000000,请求URI:/apps/32fe74cb-f1dd-4433-bfbf-ba15991cdee1/services/d914c6a9-eb86-43d8-9108-4ee395d25345/分区/aa7a586e-7f30-4a02-99e4-8a21d2dc8295/副本/131759772120608879s,请求统计:响应时间:2018-07-30CALAT10:54:11.9018240Z,StoreReadResult:StorePhysicalAddress:StorePhysicalAddress:rntbd://10.0.0.48:14000/apps/32fe74cb-f1dd-4433-bfbf-ba15991cdee1/services/d914c6a9-eb86-43d8-9108-4ee395d25345/partitions/aa7a586e-7f30-4a02-99e4-8A21DC8295/副本/131759772120608879s,LSN:2965,全球委员会DSN:2964,PartitionKeyRangeId:0,IsValid:True,StatusCode:0,IsGone:False,IsNotFound:False,IsInvalidPartition:False,RequestCharge:1,Itemn:LSN:-1,ResourceType:Document,OperationType:Query,SDK:Microsoft.Azure.Documents.Common/2.0.0”

有人能帮我解决这类问题吗

SQL查询超出了“或”运算符的最大数目。这个 允许的限制是500

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

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

我建议您可以将每批查询数据的数量拆分,以暂时避免此限制。我还搜索了与限制相关的类似案例:

当然,您可以添加反馈以获得官方协助或考虑使用Azure,如果您想要完整的MUGODB特性支持。


希望对您有所帮助。

谢谢您的回答。是的,我使用Cosmos DB Mongo API。为了解决这个问题,我不得不减少结果中记录的数量。我肯定会考虑使用MungDB阿特拉斯来进行下一个项目。