2016-08-24 73 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

相关问题