【发布时间】:2020-09-21 04:10:10
【问题描述】:
我是 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')
编辑:我意识到我无法比较尚未插入数据库的内容,实际上我必须比较 data["category"] 而不是 users.find(...) 并且我更新了我的代码
感谢您对这项任务的帮助。提前谢谢你
【问题讨论】:
-
users.find({"category":data["category"]})的输出是什么? -
@ngShravil.py 基本上是一个用户的 category:admin 或 category : "simple"
-
你确定吗?您提到了
I store the users with fields(name,surname,email,category),那么users.find({"category":data["category"]})怎么能只检索类别,因为您没有提到投影参数。我建议你通过docs。 -
@ngShravil.py 我刚刚编辑了代码
标签: string mongodb flask pymongo