在机器人框架中使用 AND 和 OR 条件查询 mongodb 时出错



在我的项目中,我需要从 mongodb 查询,查询具有 AND 和 OR,但我收到错误。

下面是我的代码:

*** Variables ***
${host}    mongodb://username:password@192.10.23.126/RegressionDB
${port}    27017
${mongDBName}   RegressionDB
${mongoCollection}  Service
${mQuery}        { "service.offerings.offering.offeringType.masterCode": "Plan", $or: [ { "service.offerings.offering.offeringSubType.masterCode": "WS" }, { $and: [ { "service.isDeliveryRequired": "N" } ] } ] }
${mReturnFields}    service.customerCode
${isReturnID}     False
*** Test Cases ***
Query from MongoDatabase
    Connect To MongoDB    ${host}    ${port}
    ${result}=  Retrieve Mongodb Records With Desired Fields  ${mongDBName}  ${mongoCollection}   ${mQuery}   ${mReturnFields}   ${isReturnID}

我收到以下错误:

ValueError: Expecting property name enclosed in double quotes: line 1 column 58 (char 57)

我使用MongoChef执行的相同查询工作正常,但不适用于机器人框架,这可能是什么原因。

这里的问题与 AND 和 OR 无关,我想这与设置属性有关! 设置属性时,值必须用双引号引起来。由于它适用于普通查询并且只抛出此错误和/或,因此您可以尝试在双引号中添加和/或!

那应该可以解决它!

最新更新