Upsert方法


  • 註冊用戶

    插入數據時,如果沒有主鍵相同的數據就新增一筆資料,如果該主鍵的資料已存在時就更新,這是開發系統時常會用到的情境,在MongoDB中要如何實現呢?

               var builder = Builders<BsonDocument>.Filter;

                var filter = builder.Eq("type", "emp") & builder.Eq("emp_no", emp_no);    //where條件

                 var update = Builders<BsonDocument>.Update                                      //更新資料

                    .Set("type", "emp")

                    .Set("emp_no", emp_no)

                    .Set("card_id", card_id)

                    .Set("emp_name", emp_name)

                    .SetOnInsert("creator", editor)                                                              //只有新增資料時才會執行

                    .SetOnInsert("create_time", DateTime.Now)

                    .Set("editor", editor)

                    .Set("edit_time", DateTime.Now)

                var option = new UpdateOptions { IsUpsert = true };                                 //開啟Upsert模式

                var result = _collection.UpdateOne(filter, update, option);


  • 註冊用戶

    本帖下載内容已隐藏,请登入以查看隐藏内容!


  • Lv 1

    @尖尖角

    結果跳過去又要跳回來 😆


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待