假设我有一个包含两个集合的MongoDB数据库 - “fruits”和“baskets”。除了名称之外,每种水果都有很多信息,例如卡路里,原产国等等。
篮子基本上只是一组水果,即除了篮子的属性外,每个篮子项目都有一个FRUIT_ARRAY
字段,用于保存水果的_id
个。为简单起见,假设每个水果只能属于一个篮子。
现在有人给了我一个篮子_id
,我需要尽可能高效地提取相应的水果记录及其所有细节。我的问题是 - 有没有比这更有效的方法(我使用python包装器与MongoDB进行交互,称为pymongo
):
basket = db['baskets'].find_one({'_id':basket_id})
fruits = db['fruits'].find({'_id':{'$in':basket[FRUIT_ARRAY]}})
鉴于我必须为集合中的每个篮子做这件事,我怎样才能使这个程序更有效率?我听说过批量操作,但据我所知,它们只是关于数据库的更新。
答案 0 :(得分:0)
由于baskets
和fruits
是不同的集合,因此它们不相关。您可以通过集合边界查询两个查询。