我如何在mongodb中创建自动增量子集合?

时间:2012-05-30 16:18:44

标签: mongodb

我很难绕过这个问题。

我想保存每个用户提交的自动递增的表单列表。

我试图实现类似的计划:

users:{
    _id:asfa98s7fasf,
    name:"some name",
    forms:{
       1:{
           _id:asdasdfa8sdf,
           q1:'yes',
           q2:'no',
           q3:'yes'
       }, 
       2:{
           _id:asdasdfgdfgf,
           q1:'no',
           q2:'no',
           q3:'yes'
       }
    }
}

我不了解如何创建自动递增表单。

我想我需要在某个地方使用ensureIndex,但我不确定。

有人能指出我正确的方向吗?

由于

1 个答案:

答案 0 :(得分:0)

您可以在2个操作中执行此操作:

  1. 使用查询N
  2. 查找表单数组中的总元素
  3. 使用另一个更新查询将另外一个项添加到表单数组,键为“K + 1”。
  4. 您还可以尝试使用非assosiative数组来存储表单文档中的元素,除非您的密钥有一些特殊用途,例如:

    users:{
        _id:asfa98s7fasf,
        name:"some name",
        forms:[
           {
               _id:asdasdfa8sdf,
               q1:'yes',
               q2:'no',
               q3:'yes'
           }, 
           {
               _id:asdasdfgdfgf,
               q1:'no',
               q2:'no',
               q3:'yes'
           ]
        }
    
    }
    

    然后,您可以使用$push运算符将元素添加到form数组,该数组将自动附加到数组的第3位。 http://www.mongodb.org/display/DOCS/Updating#Updating-%24push