【发布时间】:2016-03-15 07:50:52
【问题描述】:
假设我有一个 MongoDB 数据库,其中包含两个集合——“fruits”和“baskets”。除了名称之外,每种水果都有很多信息,例如卡路里、原产国等等。
一个篮子基本上就是一组水果,即除了篮子的属性外,每个篮子项都有一个字段FRUIT_ARRAY,其中包含水果的_id。为简单起见,假设每个水果只能属于一个篮子。
现在有人给了我一个篮子_id,我需要尽可能高效地提取相应的水果记录及其所有详细信息。我的问题是 - 有没有比这样做更有效的方法(我正在使用一个名为 pymongo 的 python 包装器与 MongoDB 交互):
basket = db['baskets'].find_one({'_id':basket_id})
fruits = db['fruits'].find({'_id':{'$in':basket[FRUIT_ARRAY]}})
鉴于我必须为收藏中的每个篮子都做这件事,我怎样才能使这个过程更有效率?我听说过批量操作,但据我所知,它们只是关于更新数据库。
【问题讨论】: