是否可以在 MongoDB 分組聚合之後重新命名 _id 欄位?


可以,可以使用聚合重新命名。我們首先使用文件建立一個集合

> db.renameIdDemo.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a1760353decbc2fc927c5")
}
> db.renameIdDemo.insertOne({"StudentName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a1765353decbc2fc927c6")
}
> db.renameIdDemo.insertOne({"StudentName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a176b353decbc2fc927c7")
}

以下是使用 find() 方法顯示集合中的所有文件的查詢

> db.renameIdDemo.find();

這將生成以下輸出

{ "_id" : ObjectId("5c9a1760353decbc2fc927c5"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c9a1765353decbc2fc927c6"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5c9a176b353decbc2fc927c7"), "StudentName" : "David" }

以下是重新命名 _id 欄位的查詢

> db.renameIdDemo.aggregate({ $project: {
...    _id: 0,
...    mainId: "$_id",
...    count: 1,
...    sum: 1
... }
... }
... );

這將生成以下輸出。我們已將 _id 重新命名為 mainId;

{ "mainId" : ObjectId("5c9a1760353decbc2fc927c5") }
{ "mainId" : ObjectId("5c9a1765353decbc2fc927c6") }
{ "mainId" : ObjectId("5c9a176b353decbc2fc927c7") }

更新於:2019 年 7 月 30 日

2K+ 瀏覽量

開啟您的 職業生涯

完成課程獲得認證

開始
廣告