2017-11-29 10 views
0

私はモンゴブに比較的新しい人です。私はどのように解決するのかよく分かりません。モンゴーのコレクション構造の移行

account_number: { 
       type: String, 
       index: false, 
       required: false 
      }, 

私は

結構です
account_number: [ 
      { 
       type: String, 
       index: false, 
       required: false 
      } 
     ], 

、私は今、まだ前の定義で開催されたデータを変換された上で立ち往生していますポイントに変換しています:私は、マングーススキーマでこのフィールド定義を持っています新しい配列形式に変換します。コマンドラインでこれをどうすればいいのですか?

編集:

私は今、これを持っている:配列としての特性を再現している

db.customers.find().snapshot().forEach(function (elem) { 
    db.customers.update({_id: elem._id},{$unset: {account_number: 1}}); 
db.customers.update({_id: elem._id},{$push: {account_number: elem.account_number}});}); 

が、それは空白になっています。

+0

あなたは内の現在の値を参照することができないとしてそれは、単一の更新文ではできません(私の知る限りでは)更新(例えばSQLとは対照的に)。あなたがしなければならないことは、コレクションを反復し、各文書を段階的に更新することです。 – qqilihq

+0

各文書に複数の口座番号がありますか? –

答えて

1

OKので、これは私が働いて得たものである:見つけた人のため

db.customers.find().forEach(function (elem) { 
    db.customers.update({_id: elem._id}, {$unset: {account_number: 1}}); 
    db.customers.update({_id: elem._id}, {$push: {account_number: elem.account_number}}); 
}); 

この

+0

良い解決策のように見えます。 –

関連する問題