python - 在 Python 中的 dict 内的列表中搜索 - Pymongo
问题描述
希望每个人都做得很好。
我使用 Mongodb 存储了具有以下结构的数据:
{'_id': ObjectId('5f788e29d55317c9cedf2'), 'num': '5512', 'person': [['John', 'Leader'], ['Mary', 'Follower']], 'valid': True}
我正在尝试在键“person”中搜索字符串,但到目前为止没有成功。
这是我正在使用的代码:
name = "John"
rgx = re.compile('.*(%s).*'%name, re.IGNORECASE)
selection = db.collection.find({"person": rgx})
但它每次都返回空。
关于为什么以及我做错了什么的任何想法?
非常感谢!
解决方案
我建议您更改数据模型,否则您的查询将是一个痛苦的世界。但如果你不能,这个查询可以使用$elemMatch
操作符工作:
print(list(db.mycollection.find({'person': {'$elemMatch': {'$elemMatch': {'$in': ['John']}}}})))
推荐阅读
- python-3.x - 如何使用 np.genfromtxt 从文本文件中加载 np.array
- python - 如何将带有“_”的__dict__键名转换为“-”?
- java - UIAutomatorViewer 未启动 [Mac OS Catalina]
- javascript - 用 span 包裹部分 DOM 以突出显示位于更多节点中的字符串的一部分
- powershell - 使用 Powershell 脚本不以表格形式显示文件数据
- python - 使用两个单独的盐对密码进行两次单独的哈希处理并将两个哈希值保存在同一台服务器上是否安全
- android - 如何找到支持的 Flutter 应用版本
- r - 如何根据特定的数据值进行组织
- python - Python网络抓取问题:本地存储
- flutter - 如何在不从远程服务器重新加载数据的情况下将列表项添加到 FutureBuilder ListView?[扑]