これは愚かな質問で、おそらく簡単な答えがあると思います。新しい_idを使ってMongoDBに文書を複製する
MongoDBでドキュメントを複製し、新しいドキュメントの_idを変更するにはどうすればよいですか?あなたが原稿を持って
イメージング:
> var orig = db.MyCollection.findOne({_id: 'hi'})
そして今、私は_idを持つコレクション内の別の文書「さようなら」をします。
これは愚かな質問で、おそらく簡単な答えがあると思います。新しい_idを使ってMongoDBに文書を複製する
MongoDBでドキュメントを複製し、新しいドキュメントの_idを変更するにはどうすればよいですか?あなたが原稿を持って
イメージング:
> var orig = db.MyCollection.findOne({_id: 'hi'})
そして今、私は_idを持つコレクション内の別の文書「さようなら」をします。
idを変更して再挿入してください。
> db.coll.insert({_id: 'hi', val: 1})
> var orig = db.coll.findOne({_id: 'hi'})
> orig._id = 'bye'
bye
> db.coll.insert(orig)
> db.coll.find()
{ "_id" : "hi", "val" : 1 }
{ "_id" : "bye", "val" : 1 }
コピードキュメントに新しいObjectIdを付けることができます。 Mongoのでは689応答を@に
var copy = db.collection.findOne();
for (var i = 0; i< 30; i++){
copy._id = new ObjectId();
db.collection.insert(copy);
}
ほとんど改善をシェル
var copy = db.collection.findOne({},{_id:0});
for (var i = 0; i< 30; i++){
db.collection.insert(copy);
}
を削除:「E11000キーエラーを再現インデックス ' –
私はどのように表示されません。 各インサートは新しいユニコード_idを作成します。 – pykiss
原因 "E11000重複キーエラーインデックス" –
:
db.support_data_cache.find({"_id" : ObjectId("5a4e47e0a21698d455000009")}).forEach(function(doc){var newDoc = doc; delete newDoc._id; db.support_data_cache.insert(newDoc); })
:単一の行を使用して
ラン理解のための構造形式:
db.collectionName.find({"_id" : ObjectId("5a4e47e0a21698d455000009")}).forEach(function(doc){
var newDoc = doc;
delete newDoc._id;
db.collectionName.insert(newDoc);
})
あなたが行を複製しますが、明示的に新しいIDを入力せずに、単に挿入コマンドを実行する前に「_id」プロパティを削除する場合:これが発生することがありorig._id –