Обновление ссылок на mongodb из-за имен полей - PullRequest
1 голос
/ 01 октября 2011

У меня есть коллекция 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), где я изначально придумал этот запрос.Но я не могу заставить это работать на более новых версиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...