¿Cómo seleccionar un solo campo en MongoDB usando Pymongo?

Estoy intentando encontrar un registro dentro de MongoDB y filtrar _id del resultado.

Aquí está mi código:

 #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') 

Salida:

 {'password': '123123', 'name': '', 'email': '', '_id': ObjectId('')} 

¿Cómo puedo filtrar el campo _id de la salida?

Related of "¿Cómo seleccionar un solo campo en MongoDB usando Pymongo?"

Debe especificar el campo que desea devolver utilizando la proyección.

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

Necesitas pasar el segundo objeto en tu consulta. El primer parámetro es una cláusula de selección, mientras que el segundo es una proyección.

Consulte la documentación de MongoDB para obtener más información: https://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/

Es la mejor manera de evitar la identificación.

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

ahora tienes RESPUESTA “{‘contraseña’: ‘123123’, ‘nombre’: ‘prakash’, ‘correo electrónico’: ‘prakashprabhu48@gmail.com’}” (sin identificación)