python-3.x - 如何使用 get 方法在 django 中使用 pymongo 从 mongodb 集合中获取数据?
问题描述
我有一个 mongodb 数据库,并且我已将该数据库与 django 中的 pymongo 连接起来。我是 django 的新手,我正在尝试获取输入的数据是否存在于集合中,如果存在则使用 get 方法返回该记录
import pymongo
from pymongo import MongoClient
db_name = 'student_db'
client = MongoClient('localhost', 27017)
db_obj = client[db_name]
collection=db_obj['mongo_app_student']
@api_view(['GET'])
def test(request):
data = request.data
for x in collection.find():
if data in x:
print('entered a right value')
return Response(data)
/test 上的 TypeError 不可散列类型:'dict'
当我尝试在邮递员中获取输出时出现此错误。请帮忙
解决方案
首先,您应该为此使用 POST 请求,并且由于 find() 返回游标,因此您正在尝试迭代游标。我不确定这是个好主意。并假设request.data
是一个 dict() 尝试==
用于比较x
也尝试将您从 mongo 获得的内容投射到这样的列表中:
import pymongo
from pymongo import MongoClient
db_name = 'student_db'
client = MongoClient('localhost', 27017)
db_obj = client[db_name]
collection=db_obj['mongo_app_student']
@api_view(['GET', 'POST'])
def test(request):
response_data = None
if request.method == 'POST':
for x in list(collection.find()):
if data == x:
print('entered a right value')
response_data = data
return Response(response_data )
让我知道事情的后续。
推荐阅读
- mysql - MySQL:非重复键的重复键错误 1022
- c# - DataGridView DefaultCellStyle.BackColor 不使用我的 if 语句应用
- mongodb - 在 MongoDB 中存储时间序列数据的最佳实践是什么?
- django - ConnectionAbortedError: [WinError 10053] 已建立的连接被主机中的软件中止 请给我一个解决方案
- reactjs - React - 使用变量解析字符串
- sql - 在 Group By 调用后划分列
- azure-blob-storage - Azure 流分析 blob 输出 schemaHashcode、Guid 和 Number 变量指的是什么?
- php - 在收到的订单和订单电子邮件中更改特定产品类别的“账单地址”文本
- scala - 选择具有不同分离模式的值
- java - 将分区时间戳转换为 com.google.protobuf.Timestamp