我正在使用本地安装在我的PC上的mongoDB,并且尝试使用Python(pymongo)向其发送查询以获取自定义数据集。我收集了以下格式的3件商品
{"sn": <string>,
"final_result": <string>,
"measures": [
{"name": <string>, "value": number, "unit": "string", "result": "string"},
]
}
我要查找的是值在3到4之间的文档。应该是2个文档,但是返回了3个(所有文档)
它遵循代码:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["trialdb"]
mycol = mydb["mytests"]
mylist = [
{"sn": "321507124698",
"final_result": "PASS",
"measures": [
{"name": "TP05", "value": 5.056, "unit": "Volts", "result": "PASS"},
{"name": "TP06", "value": 3.014, "unit": "Volts", "result": "PASS"},
{"name": "TP07", "value": 8.042, "unit": "Volts", "result": "PASS"}
]
},
{"sn": "321507124699",
"final_result": "PASS",
"measures": [
{"name": "TP05", "value": 5.046, "unit": "Volts", "result": "PASS"},
{"name": "TP06", "value": 2.954, "unit": "Volts", "result": "PASS"},
{"name": "TP07", "value": 8.420, "unit": "Volts", "result": "PASS"}
]
},
{"sn": "321507124700",
"final_result": "FAIL",
"measures": [
{"name": "TP05", "value": 2.729, "unit": "Volts", "result": "FAIL"},
{"name": "TP06", "value": 3.014, "unit": "Volts", "result": "PASS"},
{"name": "TP07", "value": 8.272, "unit": "Volts", "result": "PASS"}
]
}
]
print("\n#################################################\n")
print("Print ids where: 3 < Value < 4 \n")
myquery = {"measures.value": {"$gt": 3, "$lt": 4}}
mydoc = mycol.find(myquery, {"_id": 0, "measures": 0})
for x in mydoc:
print(x)