gpt4 book ai didi

python - 如何检索两个字段值与 pymongo 相等的所有文档?

转载 作者:可可西里 更新时间:2023-11-01 09:29:46 24 4
gpt4 key购买 nike

我有一个 MongoDB 集合,我想使用 python 提取某些日期字段小于其他日期字段的所有文档。

我知道如何在 robomongo 中做到这一点:

db.getCollection('myCollection').find({'date1' : {'$lt' : ISODate(this.date2)}})

但是当我使用 pymongo 时这不起作用。我尝试使用 datetime 而不是 ISODate,但没有成功。

编辑:date1 和 date2 都是字段名

有什么解决办法吗?

最佳答案

您需要使用 .aggregate()提供对聚合管道和 $redact 的访问的方法运营商。

pipeline = [
{'$match': {'date1': {'$exists': True}, 'date2': {'$exists': True}}},
{'$redact': {'$cond': [{'$lt': ['$date1', '$date2']}, '$$KEEP', '$$PRUNE']}}
]
collection.aggregate(pipeline)

$redact 将使用 $$KEEP 返回所有符合条件的文档并使用 $$PRUNE 丢弃那些不匹配的变量。

$match舞台是可选的,但很好。它所做的只是初步过滤,限制了将在下一阶段处理的文档数量。此外,$redact 会执行集合扫描,因此使用 $match 只会让事情变得更好。

关于python - 如何检索两个字段值与 pymongo 相等的所有文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33944407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com