2012-05-30 2 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' 
     } 
    } 
} 

Я не понимаю, как создать авто увеличивающиеся формы.

Я думаю, что мне нужно использовать securityIndex где-нибудь, но я просто не уверен.

Может кто-нибудь указать мне в правильном направлении?

Благодаря

ответ

0

Вы можете сделать это в 2-х операций:

  1. Find общих элементов в массиве форм с помощью запроса, 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

Смежные вопросы