2016-08-24 72 views
0

我想將文檔保存到集合中。 每個用戶最多有5個文檔。MongoDB索引限制同一集合中每個用戶的文檔數量

{uid: 1, ad_id: 1} 
{uid: 1, ad_id: 2} 
{uid: 1, ad_id: 3} 
{uid: 1, ad_id: 4} 
{uid: 1, ad_id: 5} 
{uid: 2, ad_id: 6} 
{uid: 2, ad_id: 7} 
{uid: 2, ad_id: 8} 
{uid: 2, ad_id: 9} 
{uid: 2, ad_id: 10} 

現在我們有一個新的文檔{uid: 1, ad_id: 11} 因爲文件的最大數量爲5,我們刪除最早的一個。 收集成爲本:

{uid: 1, ad_id: 11} 
{uid: 1, ad_id: 1} 
{uid: 1, ad_id: 2} 
{uid: 1, ad_id: 3} 
{uid: 1, ad_id: 4} 
{uid: 2, ad_id: 6} 
{uid: 2, ad_id: 7} 
{uid: 2, ad_id: 8} 
{uid: 2, ad_id: 9} 
{uid: 2, ad_id: 10} 

現在我檢查代碼的數量。有沒有mongo可以做到的任何索引? 謝謝。

回答

0

我不這麼認爲,你必須控制它在你的應用程序代碼。

您可以僅限於一個具有唯一索引但不包含N個文檔的記錄。此外,新的保存將失敗,而不是覆蓋前一個。

+0

謝謝。我最近接受了採訪。面試官說有一個可以處理這個問題的索引。我做了一些研究,但我無法弄清楚。面試官可能會與我談一個不同的場景。 :(。 – Jaychou

相關問題