【问题标题】:How to efficiently find multiple items by their _ids in MongoDB?如何通过 _id 在 MongoDB 中有效地查找多个项目?
【发布时间】: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]}})

鉴于我必须为收藏中的每个篮子都做这件事,我怎样才能使这个过程更有效率?我听说过批量操作,但据我所知,它们只是关于更新数据库。

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    由于basketsfruits 是不同的集合,因此它们不相关。您的两个查询可以跨集合边界查询。

    【讨论】:

    • 你能把你的答案扩大一点吗?你的意思是我的做法已经是最有效的了吗?
    • 问题是:它是否工作,如果没有,是否有不同的方式。我什么都看不到。
    • 只是为了清楚起见,我知道我的代码有效,我只是想找到一种更有效的方法。
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2015-11-08
    • 1970-01-01
    • 2011-12-30
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多