Как я могу получить данные из коллекции mongodb, используя pymongo в django, используя метод get? - PullRequest
0 голосов
/ 14 июня 2019

У меня есть одна база данных mongodb, и я связал эту базу данных с pymongo в django. Я новичок в 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)

TypeError at / test непригодный тип: 'dict'

Я получаю эту ошибку, когда пытаюсь получить вывод в почтальоне. пожалуйста помогите

1 Ответ

0 голосов
/ 14 июня 2019

Сначала вы должны использовать для этого запрос POST, и поскольку find () возвращает курсор, вы пытаетесь выполнить итерацию по курсору.Я не уверен, что это хорошая идея.И если предположить, что request.data является dict (), попробуйте использовать == для сравнения с x
. Также попробуйте привести то, что вы получили от Монго, в список, подобный этому:

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 )

Дайте мне знатькак дела.

...