python - 合并两个 Mongodb 集合并选择唯一值(pymongo)
问题描述
我有一个问题集合,以及两个集合中的销售集合我有一个名为 item_id 的字段
我需要在每个集合上生成一个包含唯一项目 ID 的列表
例子 :
订单收集:
{
"orderid": 1
"itemid": item1
},
{
"orderid": 2
"itemid": item2
},
{
"orderid": 3
"itemid": item4
}
问题集合:
{
"questionid":1
"itemid":item1
},
{
"questionid":2
"itemid":item2
},
{
"questionid":3
"itemid":item3
}
我正在寻找的结果是这样的
项目集合:
{
"itemid":item1,
"itemid":item2,
"itemid":item3,
"itemid":item4,
}
解决方案
通过使用从集合中获取不同的项目:col.distict('itemid')
然后在集合数据结构中聚合项目。
all_items = set()
orders = db.orders.distinct('itemid')
questions = db.questions.distinct('itemid')
for item in orders:
all_items.add(item)
for item in questions:
all_items.add(item)
最后 all_items 是一个包含两个集合中不同项目的集合,您可以根据需要将其转换为任何其他数据结构。
#inserting to item collection
col = db.items
for item in all_items:
col.insert_one({'item' : item})
将项目添加到集合中,保证元素的唯一性。
推荐阅读
- tcl - 如何在ubuntu20中安装tcldot库
- vb.net - 在不同版本的 Catia 中进行仿真
- python - 在Python中为没有括号的嵌套字典赋值
- flutter - 无法理解 http 请求问题,尽管 7 天前它在颤振中运行良好
- spring - Spring boot cloud vault 更新到 3.0.3 版本后不再加载属性
- neo4j - 发生错误!无法仅在服务器上的一个数据库中启动
- c++ - 假设。从 Wavefront Obj 文件导入模型后奇怪的顶点坐标
- r - 在数据框的多行上使用 httr
- google-sheets - 谷歌表格相同的公式和相同的输入文本会产生不同的结果
- javascript - Need to detect mousemove event in iframe without setting css pointer-events to none