我有一个MongoDB集合,我正在尝试更新其中的所有条目以更改用于存储引用的字段的名称 . 我正在使用的查询是

db.products.find().forEeach(function(p) {
  p.newField = p.oldField;
  db.products.save(p);
});

问题是 p.oldField 是遵循 { "$ref": "collection", "$id": ObjectId("...")} 的标准格式的DBRef . 当我尝试运行 db.products.save(p); Mongo时返回以下错误:

Sat Oct  1 13:00:57 uncaught exception: field names cannot start with $ [$db]

我正在使用MongoDB shell的1.8.2版本 . 我已经在旧版本的shell(1.6.5)上看到了这个工作,这是我最初提出这个查询的地方 . 但我似乎无法在新版本上使用它 .