2013-07-26 106 views
1

我有兩個系列 - 「產品」和「類別」。 每個產品都有「category_id」屬性。MongoDB - 如何選擇每個類別中的一個產品?

我需要選擇最後30個產品,這些產品應該在不同的類別。

類別

{ 
    _id: 'books', 
    name: 'Books', 
}, 
{ 
    _id: 'computers', 
    name: 'Computers', 
} 

產品

{ 
    name: 'The Lean Startup', 
    category_id: 'books', 
    created: ISODate("2013-05-29T10:37:58.071Z") 
}, 
{ 
    name: 'Start Small, Stay Small', 
    category_id: 'books', 
    created: ISODate("2013-05-29T10:37:58.071Z") 
} 
+0

你的問題不明確。提供樣本數據。 – Netro

+0

我更新了說明。 – un1t

回答

1

你可以使用聚合框架爲你的任務。 http://docs.mongodb.org/manual/reference/aggregation/

你的查詢將通過category_id

  • 涉及

    • $sort通過created
    • $group大概$limit
  • +0

    我確實嘗試過。它返回category_id的列表。所以在這種情況下,我需要兩個查詢。可能有一種方法可以用一個查詢來做到這一點。 – un1t

    +0

    看看這篇關於使用Map-Reduce實現連接的文章http://blog.knoldus.com/2013/02/03/joins-now-possible-in-mongodb/ – obecker

    相關問題