C# 中 MongoDB 更新操作

來源:互聯網
上載者:User

我想實現 "update mytable set isdel=1 where id='123456789'"

我用的是samus驅動

連結我就不說了,說重點的。

這是查詢出得資料。

{ "_id" : ObjectId("4ed4a56912842309d072c2ef"), "id" : "123456789", "userid" : "10000", "tiitle" : "test", "content" :"testcontent", "isdel" : 0 }
public int Delete(string id)        {            Document doc = new Document();            doc["isdel"] = 1;            using (MyMongoDb mdb = new MyMongoDb())            {                var collection = mdb.GetCollection<LOGS>();                collection.Update(doc, x=>x.id=id);            }            return 1;        }

 

結果是更新了,可是把整個一行都給更新了只留了一個isdel欄位。

{ "_id" : ObjectId("4ed4a56912842309d072c2ef"), "isdel" : 1 }
public int Delete(string id)        {            Document doc = new Document();            doc["isdel"] = 1;            using (MyMongoDb mdb = new MyMongoDb())            {                var collection = mdb.GetCollection<LOGS>();                collection.FindAndModify(doc, new Document { { "id", id } });            }            return 1;        }

 

看看有沒有別的方法吧,找了很久發現了,FindAndModify方法。

執行一下,看看結果。

{ "_id" : ObjectId("4ed4a56912842309d072c2ef"), "id" : "123456789", "userid" : "10000", "tiitle" : "test", "content" :"testcontent", "isdel" : 1 }

 

成功,呵呵。

這就是Update和FindAndModify的區別。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.