在我的项目中,我需要使用带有AND和OR的查询从mongodb查询,但是我收到错误。
下面是我的代码:
*** 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
执行的相同查询工作正常,但没有使用机器人框架,可能是什么原因。
答案 0 :(得分:1)
这里的问题与AND和OR无关,我想它与设置属性有关!在设置属性时,值必须是双引号。因为它适用于普通查询,只会抛出此错误和/或可以尝试添加和/或双引号!
那应该解决它!