我有一个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)上看到了这个工作,这是我最初提出这个查询的地方 . 但我似乎无法在新版本上使用它 .