我是mongodb和pymongo的初学者,我有一个mongodb电影数据库,用于存储用户我试图使用pymongo在我的mongodb数据中插入用户,并且用户密钥必须是“ Admin”或“ Simple”字符串。但是,我是一个完整的初学者,我不知道如何将mongodb集合实例与字符串进行比较。我的代码如下:
from pymongo import MongoClient
from flask import Flask , request , Response , jsonify , redirect
from pymongo.errors import DuplicateKeyError
import json
client = MongoClient('mongodb://localhost:27017/')
db = client['MovieFlixDB']
users = db['Users']
movies = db['Movies']
app = Flask(__name__)
@app.route('/insertuser' , methods = ['POST'])
def insert_user():
data = None
try:
data=json.loads(request.data)
except Exception as e:
return Response("Bad json content" , status = 500 , mimetype='application/json')
if data==None:
return Response("no data has been added" , status = 500 , mimetype='application/json')
if not "name" in data or not "surname" in data or not "email" in data or not "category" in data:
return Response("Information incompleted" , status = 500 , mimetype='application/json')
if data['category']!="admin" and data['category']!="simple":
return Response("Invalid category." ,status = 500 , mimetype='application/json')
编辑:我意识到我无法比较尚未插入数据库中的内容,而实际上我必须比较数据[“ category”],而不是users.find(...),并且更新了代码
非常感谢您在此任务上的帮助。预先谢谢你
我认为您需要在下面使用:
db_data = users.find_one({"email":data["email"]})
if db_data["category"] == data['category']:
# Do something
else:
# Do something else
我建议您使用find_one
而不是find
,因为您只需要找到一个符合条件的文档即可。