Дублировать документ в MongoDB с помощью нового _id
Хорошо, я полагаю, что это глупый вопрос и, вероятно, имеет простой ответ.
Как я могу дублировать документ в MongoDB, изменяя _id нового?
Отображение того, что у вас есть исходный документ:
> var orig = db.MyCollection.findOne({_id: 'hi'})
И теперь мне нужен другой документ в коллекции с _id 'bye'.
Ответы
Ответ 1
Просто измените идентификатор и снова вставьте.
> 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 }
Ответ 2
Небольшое улучшение ответа @689
var copy = db.collection.findOne({},{_id:0});
for (var i = 0; i< 30; i++){
db.collection.insert(copy);
}
Ответ 3
Вы можете указать новый экземпляр ObjectId для копии документа. В оболочке манго
var copy = db.collection.findOne();
for (var i = 0; i< 30; i++){
copy._id = new ObjectId();
db.collection.insert(copy);
}