更新 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" }
廣告