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

时间:2016-02-02 04:54:15

标签: python 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 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:2)

您需要在查询中传递第二个对象。第一个参数是select子句,而第二个参数是投影。

有关详细信息,请参阅MongoDB文档: https://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/

答案 2 :(得分:2)

  

这是避免id的最佳方法,

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

现在你得到了答案&#34; {&#39;密码&#39;&#39; 123123&#39;,&#39;名称&#39;:&#39; prakash&#39;,&# 39;电子邮件&#39;:&#39; prakashprabhu48@gmail.com'}&#34;(没有身份证)