我在带有GUID类型键的MongoDB集合中有一些文档,我希望能够使用shell将它们复制到具有新GUID的新行。我试过这个:
db.schedules.find().forEach(function(x) {
x._id = null;
db.schedules.save(x);
});
我希望 _id 字段在我将其设置为null后自动生成,但当然这很天真。如果有的话,我怎样才能在shell中生成新的GUID?
更新
显然无法从shell生成GUID。我最后在C#中编写了一个迷你脚本,以便使用Mongo C#驱动程序。
答案 0 :(得分:5)
请改为尝试:
x._id = new ObjectId();
db.schedules.insert(x);
你也可以这样做:
delete x._id;
db.schedules.insert(x);