У меня есть коллекция MongoDB, и я пытаюсь обновить все записи в ней, чтобы изменить имя поля, используемого для хранения ссылки.Я использую запрос
db.products.find().forEeach(function(p) {
p.newField = p.oldField;
db.products.save(p);
});
Проблема в том, что p.oldField
- это DBRef, соответствующий стандартному формату { "$ref": "collection", "$id": ObjectId("...")}
.Когда я пытаюсь запустить db.products.save(p);
Mongo возвращает следующую ошибку:
Sat Oct 1 13:00:57 uncaught exception: field names cannot start with $ [$db]
Я использую версию 1.8.2 оболочки MongoDB.Я видел эту работу на более старой версии оболочки (1.6.5), где я изначально придумал этот запрос.Но я не могу заставить это работать на более новых версиях.