【问题标题】:How to query on multiple filters in pymongo's find_one_and_update() method?如何在 pymongo 的 find_one_and_update() 方法中查询多个过滤器?
【发布时间】:2022-01-22 12:13:44
【问题描述】:

我正在尝试使用pymongo的find_one_and_update()方法来更新mongoDB中的一些值,但是我需要根据两个不同的条件进行过滤,这似乎是不可能的。

我尝试传入类似于 [{"name": "name"}, {"date": "date}] 的过滤器列表,但这不起作用。

有没有办法用这种方法过滤多个条件?我还能如何做到这一点?

谢谢

【问题讨论】:

  • 你能提供样本数据和你想从他们那里得到什么的例子吗?

标签: python mongodb pymongo


【解决方案1】:

我发现单个过滤器参数可以是使用布尔逻辑的查询。解决方案是:

{"$and":[{"name": "name"}, {"date": "date"}]}

作为过滤器参数。

【讨论】:

  • find_one({"name": "name"}, {"date": "date"})一样好。仅当您想将其用于$or 您希望其中一个过滤器起作用时才使用此选项。
【解决方案2】:

对于多个过滤器,如果您需要所有过滤器都生效,那么它只是一个简单的过滤器字典,如下所示:

find_one({"name": "name"}, {"date": "date"})

但是,如果您需要使多个过滤器中的任何一个生效,则可以使用$or 运算符

find_one({"$or":[{"name": "name"}, {"date": "date"}]})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多