0

私はこれに頭を悩ませるのに苦労しています。

ユーザーごとに送信されたフォームの自動インクリメントリストを保存したい。

私は次のようなスキームを達成しようとしています:

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を使用する必要があると思いますが、よくわかりません。

誰かが私を正しい方向に向けることができますか?

ありがとう

4

1 に答える 1

0

これは2つの操作で行うことができます:

  1. クエリNを使用して、フォーム配列内の要素の総数を検索します
  2. 別の更新クエリを使用して、キーが「K + 1」である、フォーム配列にもう1つのアイテムを追加します。

キーが特別な目的を持っている場合を除いて、非連想配列を使用して要素をフォームドキュメントに格納することもできます。

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

于 2012-05-30T16:47:46.193 に答える