Как выбрать одно поле в MongoDB с помощью Pymongo?

Я пытаюсь найти запись в MongoDB и фильтра _id из результата.

вот мой код:

#app.py
@app.route('/login', methods = ['GET', 'POST'])
def login():
    if request.method == "POST":
        password = request.form.get('password')
        email = request.form.get('email')
        db = get_db()
        data = db.author.find_one({'email' : email, 'password' : password})
        print(data)
        return 'data'
    else:
        return render_template('login.html')

выход:

{'password': '123123', 'name': '<my_name>', 'email': '<my_email>', '_id': ObjectId('<an_object_id_string>')}

как фильтровать _id поле из вывода?

3 ответов


нужно указать поле, которое вы хотите вернуть с помощью проекции.

data = db.author.find_one({'email' : email, 'password' : password}, {'_id': 1})

вам нужно передать второй объект в вашем запросе. Первый параметр является предложением select, а второй-проекцией.

Подробнее см. В документах MongoDB: https://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/


это лучший способ избежать id,

data = db.author.find_one({'email' : email, 'password' : password},{"password":1, "email":1, "name":1,"_id": False})

теперь у вас есть ответ " {'пароль': '123123', 'имя': 'prakash', 'email': 'prakashprabhu48@gmail.com'}"(без id)