MongoDB索引,用于限制同一集合中每个用户的文档数

时间:2016-08-24 11:10:11

标签: mongodb

我想将文档保存到集合中。 每个用户最多有5个文件

{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可以做到这一点的索引? 感谢。

1 个答案:

答案 0 :(得分:0)

我不这么认为,你必须控制你的应用程序代码。

您可以仅使用唯一索引限制一个记录,但不能限制为N个文档。此外,新的保存将失败,而不是覆盖前一个。