更新 MongoDB 欄位以使用另一欄位的值?


你可以使用聚合函式來更新 MongoDB 欄位以使用某個其他欄位的值。在此處,我們將建立兩個集合

  • 名稱

  • studentInformation

<名稱>集合

用於建立包含文件的第一個集合的查詢如下:

> db.name.insert({"FirstName":"John","LastName":"Smith"});
WriteResult({ "nInserted" : 1 })

現在你可以藉助 find() 方法顯示集合中的所有文件。查詢如下:

> db.name.find().pretty();

以下是顯示集合“名稱”文件的輸出內容:

{
   "_id" : ObjectId("5c6c00dd68174aae23f5ef55"),
   "FirstName" : "John",
   "LastName" : "Smith"
}

<studentInformation>集合

用於建立包含文件的第二個集合的查詢如下:

> db.studentInformation.insert({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
WriteResult({ "nInserted" : 1 })

現在你可以藉助 find() 方法顯示集合中的所有文件。查詢如下:

> db.studentInformation.find().pretty();

以下為輸出:

{
   "_id" : ObjectId("5c6c013068174aae23f5ef56"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor"
}

現在,讓我們使用另一個集合“studentInformation”更新集合“名稱”。查詢如下:

> db.studentInformation.aggregate( [
   {"$addFields":{"FullName":{"$concat":["$StudentFirstName"," ","$StudentLastName"]} }},
   {"$out":"name"} ] );

現在你可以檢視集合“名稱”的文件。查詢如下:

> db.name.find().pretty();

以下是顯示我們已經成功更新欄位的輸出內容:

{
   "_id" : ObjectId("5c6c013068174aae23f5ef56"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor",
   "FullName" : "Carol Taylor"
}

更新於: 30-Jul-2019

超過 2K 瀏覽

開啟你的職業生涯

完成課程獲得認證

開始
廣告