合并两个 Mongodb Collections 和 select 唯一值(pymongo)

Merge Two Mongodb Collections and select unique values (pymongo)

我有 collection 的问题,collection 的销售额 collection 我有一个名为 item_id

的字段

我需要在每个 collection

上生成一个包含唯一项目 ID 的列表

示例:

订单collection:

{
"orderid": 1
"itemid": item1
},
{
"orderid": 2
"itemid": item2
},
{
"orderid": 3
"itemid": item4
}

问题collection:

{
"questionid":1
"itemid":item1
},
{
"questionid":2
"itemid":item2
},
{
"questionid":3
"itemid":item3
}

我要找的结果是这样的

项 collection :

{
"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})

将项目添加到集合中,保证元素的唯一性。