2012-05-30 35 views
0

我很難把這個念頭包裹起來。如何在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某處,但我不確定。

有人能指出我正確的方向嗎?

感謝

回答

0

你可以做到這一點在2個操作:

  1. 使用查詢查找表格數組中元素總數,N
  2. 使用另一條更新查詢增加一個項目,以形成數組,鍵爲「K + 1」。

您也可以嘗試使用非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

+0

謝謝。我知道一個數組可以在某些方面工作。這有助於很多! – user564448

相關問題