【问题标题】:unable to compare strings in mongodb collection无法比较 mongodb 集合中的字符串
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多