如何使用 Pymongo 在 MongoDB 中选择单个字段?

新手上路,请多包涵

我正在尝试在 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 字段?

原文由 Kaushik Makwana 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 410
2 个回答

您需要使用投影指定要返回的字段。

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

原文由 styvane 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是避免 id 的最佳方法,

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

现在你得到了答案“{‘password’: ‘123123’, ‘name’: ‘prakash’, ‘email’: ‘prakashprabhu48@gmail.com’}”(没有 id)

原文由 PrabhuPrakash 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题