在我的项目中,我需要从 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 无关,我想这与设置属性有关! 设置属性时,值必须用双引号引起来。由于它适用于普通查询并且只抛出此错误和/或,因此您可以尝试在双引号中添加和/或!
那应该可以解决它!