Если вы хотите переименовать _id в том же собрании (например, если вы хотите префикс некоторых _ids):
db.someCollection.find().snapshot().forEach(function(doc) {
if (doc._id.indexOf("2019:") != 0) {
print("Processing: " + doc._id);
var oldDocId = doc._id;
doc._id = "2019:" + doc._id;
db.someCollection.insert(doc);
db.someCollection.remove({_id: oldDocId});
}
});
if (doc._id.indexOf ("2019 : ")! = 0) {... , необходимый для предотвращения бесконечного цикла, поскольку forEach выбирает вставленные документы, даже используя метод .snapshot () .