我想与类别医生一起显示数据,但是我似乎已获取所有数据。
我尝试使用:result = db.find({},{“ first_name”:1,“ last_name”:1,“ cat”:'doctor'}),但仍然得到错误的结果。
@app.route("/users/get_doctors", methods = ['GET'])
def get_doctors():
try:
db = mongo.db.Login_Details
result=db.find({},{"first_name": 1, "last_name": 1, "cat":
'doctor'})
doctors = []
for dr in result:
doctors.append({"first_name": dr['first_name'], "last_name" :
dr['last_name'], "cat" : dr['cat']})
return jsonify(doctors)
except Exception:
return 'error'
答案 0 :(得分:0)
这是因为您试图合并错误的filter
和projection
。对于MongoDB docs,第一个参数是filter
,第二个参数是projection
(您可能需要也可能不需要)。
# Thi result contain all document with category doctor. Only first name,
# last name and category are retrieved.
result = db.find({'cat': 'doctor'}, ['first_name', 'last_name', 'cat'])
上面的示例有两个参数:第一个参数是filter
,类似于普通SQL中的WHERE
子句,第二个参数是projection
,它列出了将要移动的字段要检索。
答案 1 :(得分:0)
db.find( {"cat" : "doctor" })
将找到所有带有cat = doctor的文件。
db.find({"cat": "doctor"}, {"first_name": 1, "last_name": 1})
将找到所有带有cat = doctor的文件。然后,它将仅输出first_name
和last_name
字段。除非由_id
明确禁止,否则它还将输出{ "_id": 0, "first_name": 1, "last_name": 1}
字段。第二个参数定义字段的投影,即哪些字段将出现在输出中。
有关查询和预测的语法的详细信息,请参见mongodb find。