无法在mongodb集合中比较字符串

问题描述 投票:0回答:1

我是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(...),并且更新了代码

非常感谢您在此任务上的帮助。预先谢谢你

string mongodb flask pymongo
1个回答
0
投票

我认为您需要在下面使用:

db_data = users.find_one({"email":data["email"]})
if db_data["category"] == data['category']:
    # Do something
else:
    # Do something else

我建议您使用find_one而不是find,因为您只需要找到一个符合条件的文档即可。

© www.soinside.com 2019 - 2024. All rights reserved.