2016-03-15 50 views
0

假設我有一個包含兩個集合的MongoDB數據庫 - 'fruits'和'籃子'。除了名字之外,每種水果都有很多信息,比如卡路里,原產國和什麼。如何在MongoDB中通過_ids有效地查找多個項目?

一個籃子基本上只是一組水果,即除了籃子的屬性外,每個籃子的物品都有一個字段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

由於basketsfruits是不同的集合,它們是不相關的。您的兩個查詢都可以跨集合邊界進行查詢。

+0

你可以擴大你的答案一點點嗎?你的意思是說我的做法是最有效率的嗎? – morgan1189

+0

問題是:它*工作*,如果沒有,有*不同*的方式。我看不到任何東西。 – 2016-03-15 08:05:16

+0

爲了清楚起見,我知道我的代碼有效,我只是想找到一種更有效的方法來做到這一點。 – morgan1189

相關問題