仅对所有特定键执行来自python字典的Mongodb查询

yhqotfr8  于 2023-03-17  发布在  Go
关注(0)|答案(2)|浏览(113)

我有以下配置文件yaml:

conf1: True
conf2: True

我在我的mongodb中存储了以下记录:

  1. {"conf1": True, "conf2": True}
  2. {"conf1": True, "conf2": True, "conf3": True}
    我在python中将conf.yaml作为字典加载。
    使用pymongo我查询:
import pymongo
db.collection.find(_dict)

上面的查询将返回来自mongodb的两条记录。除了迭代到结果中,还有什么更有效的方法来查询只检查键并返回键和值的完美匹配吗?(只返回第一条记录)

hi3rlvi2

hi3rlvi21#

下面是如何过滤掉没有特定字段的文档,但可能不是您要查找的文档。
我怀疑是否有一种方法可以动态地完成它。

db.collection.find(_dict , "conf3" : { $exists: false } )
xtfmy6hx

xtfmy6hx2#

可以,您可以在查询中使用$eq运算符来匹配字典中的键值对。示例:

import pymongo

# Load conf.yaml as a dictionary
conf_dict = {"conf1": True, "conf2": True}

# Create query using $eq operator
query = {"$eq": conf_dict}

# Query MongoDB collection
result = db.collection.find_one(query)

# Print the result
print(result)

相关问题