Python 联接备选方案:在pymongo中查询两个集合
我有两个独立的MongoDB系列库存和出售 我想得到特定股票类型的所有销售条目。 股票类型的信息位于另一个名为stock的集合中,两者都有唯一的股票指数 因为我不能加入MongoDB,所以我尝试查询这两个集合。 最好的办法是什么 我试过:Python 联接备选方案:在pymongo中查询两个集合,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有两个独立的MongoDB系列库存和出售 我想得到特定股票类型的所有销售条目。 股票类型的信息位于另一个名为stock的集合中,两者都有唯一的股票指数 因为我不能加入MongoDB,所以我尝试查询这两个集合。 最好的办法是什么 我试过: cursor1 = db.stock.find({ "$or": [ {“Stock_Type": 1}, {“Stock_Type": 2}, {“Stock_Type": 3}, ]
cursor1 = db.stock.find({
"$or": [
{“Stock_Type": 1},
{“Stock_Type": 2},
{“Stock_Type": 3},
]
})
stock_id = []
for i in cursor:
stock_id.append(i.Stock_Index)
cursor2 = db.sold.find({
"$and": [
{“Stock_Index": {"$in": stock_id}},
{“Month”: “February},
{“Category”:5}
]
})
在上述情况下,我得到一个内部服务器错误:
AttributeError:'dict'对象没有属性'Stock_Index'
提前感谢您的回复 pymongo游标中的每个项都是MongoDB文档,在Python中表示为字典。不能使用点表示法访问字典中的项目-请使用:
stock_id = []
for i in cursor:
stock_id.append(i["Stock_Index"])
或者,使用:
作为补充说明,您不可能在一个查询中完成此操作,因为您无法在一个查询中联接两个集合,请参阅以下内容:
stock_id = [i["Stock_Index"] for i in cursor]