【问题标题】:How to select a single field in MongoDB using Pymongo?如何使用 Pymongo 在 MongoDB 中选择单个字段?
【发布时间】:2016-05-10 18:40:06
【问题描述】:

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

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    这是避免id的最好方法,

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

    现在你得到了 ANSWER "{'password': '123123', 'name': 'prakash', 'email': 'prakashprabhu48@gmail.com'}"(没有 id)

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2015-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-07
          • 1970-01-01
          • 2019-02-11
          • 2021-06-08
          • 2014-10-24
          相关资源
          最近更新 更多