更改MongoDB集合上的主键?

要更改主键,您需要先将其删除。使用forEach()连同删除删除,然后得到一个新的主键。让我们创建一个包含文档的集合-

> db.demo41.insertOne({"StudentName":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e25ce4acfb11e5c34d898e3")
}

find()方法的帮助下显示集合中的所有文档-

> db.demo41.find();

这将产生以下输出-

{ "_id" : ObjectId("5e25ce4acfb11e5c34d898e3"), "StudentName" : "Carol" }

这是更改MongoDB集合上的主键的查询-

> var next = db.demo41.find()
>
> next.forEach(function(s) {
...    var prevId=s._id;
...    delete s._id;
...    db.demo41.insert(s);
...    db.demo41.remove(prevId);
... });

让我们再次检查主键-

> db.demo41.find();

这将产生以下显示新主键的输出-

{ "_id" : ObjectId("5e25cee5cfb11e5c34d898e4"), "StudentName" : "Carol" }