2017-01-04 10 views
-1

MongoDBのドキュメントでフィールド名(フィールド名だけではなく値)を変更したいとします。MongoDBフィールド/キーの名前を変更する

{_id : ObjectId(xxxxxxxxxxxx), 
user : "Soham", 
age : 29 
} 

は今、私は「名前」と「ユーザー」という名前のフィールドを変更したいのですが、のではない値:文書は(下)のようになりますと、それはユーザーのコレクションに一つだけの文書を持っている=ソーハムフィールド。だからmongoシェルで私は以下のコマンドを書きました:

var soh = db.user.find({"user":"Soham"}); 
soh.name = soh.user; 
delete soh.user; 
db.user.update({"user":"Roshan"},soh); 

私はupdateコマンドを実行しているときにエラーが表示されます。私がMongoDBに慣れていないのでどこが間違っているのか分かりません。どんな種類の助けにも感謝します。

答えて

0

を更新します。

db.user.updateMany({}, { $rename: { "user": "name" } }) 
+0

MongoshellからObjectIdをコピーするにはどうしたらいいですか?私はそれを選択しようとしているが、できない..任意のアイデア? – Soham

+0

このようなことを試すことができます。 'var cursor = db.user.find(); while(cursor.hasNext()){ var doc = cursor.next(); print( "_id:" + doc._id); } '。詳細はこちらhttps://docs.mongodb.com/manual/tutorial/iterate-a-cursor/ – Veeram

+0

ありがとうございました! – Soham

1

$renameオペレータを使用してください。

ので、モンゴシェルで、単一の文書を更新します

db.user.update({ _id: ObjectId(xxxxxxxxxxxx) }, { $rename: { 'user': 'name'} }) 

は、オペレータ$renameがある全ての文書

db.user.updateMany({}, {$rename: { "user": "name" } }) 
+0

ObjectIdをMongoshellから(コピーするのではなく)コピーするにはどうすればよいですか?私はそれを選択しようとしているが、できない..任意のアイデア? – Soham

+0

助けがあればこれを答えにしてください – Alex

+0

マークありがとう!ありがとう! – Soham

関連する問題