我有一个MongoDB集合,其中每个文档都是某人的人口统计信息(唯一标识符,名称,地址等)。
当我使用Python / pymongo将新数据解析到我的数据库中时,我发现与现有标识符相对应的新条目,我需要跟踪新条目的计数,以便最终只使用最常见的条目。
例如,如果我的收藏中已经有“Jenn Smith”,然后我为“Jennifer Smith”获得了两个新条目和相同的标识符,那么它就是同一个人,我只使用Mongo的$inc
增加一个计数器,所以文件最终看起来像:'names': { 'Jenn Smith': 1, 'Jennifer Smith': 2}
- 我可以使用“Jennifer Smith”,这是最常见的。
当我必须处理与Jenn Smith关联的位置完全相同的问题时,我的问题就出现了,因为location
是一个字典,例如:{'street': '123 Maple Street Apt A', 'city': 'Austin', 'state': 'TX'}
。现在碰巧有时候我会得到几个不同的位置,每个位置都有一个字典,到目前为止我$push
进入一个Mongo locations
数组。但是,在大多数情况下,每个收集文件都有一个占优势的位置,其他任何一个都是微不足道的,例如:{'street': '123 Maple Street Apartment A', 'city': 'Austin', 'state': 'TX'}
。
我理解$inc
无法像names
那样工作,因为Python词典不可清除。我应该如何找到locations
数组中最常见的元素?
答案 0 :(得分:0)
由于您的dictionary
未嵌套,您可以创建frozon set
和dictionary
的{{1}}:
hash