Подтвердить что ты не робот

Дублировать документ в MongoDB с помощью нового _id

Хорошо, я полагаю, что это глупый вопрос и, вероятно, имеет простой ответ.

Как я могу дублировать документ в MongoDB, изменяя _id нового?

Отображение того, что у вас есть исходный документ:

> var orig = db.MyCollection.findOne({_id: 'hi'})

И теперь мне нужен другой документ в коллекции с _id 'bye'.

4b9b3361

Ответ 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);
}