亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Mongo 命令“修補”DocumentDB 中的文檔

如何使用 Mongo 命令“修補”DocumentDB 中的文檔

C#
森欄 2023-05-14 16:16:17
我的代碼如下:MyModel requestID = new MyModel            {                "id" = "123"            };MyModel toUpdate = new MyModel            {               "is_cancelled" : true            };FilterDefinition<MyModel> filter = requestID.ToBsonDocument();UpdateDefinition<MyModel> update = toUpdate.ToBsonDocument();collection.FindOneAndUpdate(filter, update);例如,我在 DocumentDB 中的 1 個文檔是:{  "id": "123",  "delnum": "100001"}我的更新是:{  "is_cancelled" : true}FindOneAndUpdate 之后我期望的文檔是:{  "id": "123",  "delnum": "100001",  "is_cancelled" : true}但發生的事情是,它正在用 id=123 替換我的文檔到下面:{  "is_cancelled" : true}我想知道我是否做錯了,或者我的預期結果不正確。編輯代碼:MyModel requestID = new MyModel            {                "id" = "123"            };MyModel toUpdate = new MyModel            {               "is_cancelled" : true            };var builder = Builders<MyModel>.Update;UpdateDefinition<MyModel> update =null;toUpdate.GetType().GetProperties().ToList().ForEach(                    x => update = builder.Set(x.Name, x.GetValue(toUpdate, null))FilterDefinition<MyModel> filter = requestID.ToBsonDocument();if (update == null) return;collection.FindOneAndUpdate(filter, update);編輯:下面的代碼對我有用。var filterData = Builders<MyModel>.Filter.Eq("id", "123"); //requestIDvar updateData = new BsonDocumentUpdateDefinition<MyModel>(new BsonDocument("$set", toUpdate)); await collection.FindOneAndUpdateAsync(filter, updateData , new FindOneAndUpdateOptions<MyModel>() { IsUpsert = false });
查看完整描述

1 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

您沒有指定要更新的內容。


Mongo 期望 json 看起來像這樣:


{

  "$set" : {

    "is_cancelled" : true

  }

}

您可以使用更新生成器來簡化操作:


var builder = Builders<MyModel>.Update;

var update = builder.Set("is_cancelled", true);

Set您還可以在構建器上鏈接多個方法:


var update = builder.Set("a", 1).Set("b", 2);


查看完整回答
反對 回復 2023-05-14
  • 1 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號