簡體   English   中英

將嵌入式文檔插入MongoDB中的現有文檔

[英]Insert embedded document into an existing document in MongoDB

我有一個結構如下的文檔:

Product (root)
   Document1 (embedded)
   Document2
   ...
   DocumentN
      Part1  (embedded)
      Part2
      ...
      PartN

我有映射到該結構的POCO。 某一時刻,用戶創建了一個產品,將其立即保存到數據庫中。 然后,用戶創建一個文檔,然后將Product實體再次保存到數據庫中(據我了解,由於db中已經存在product實體,因此應該進行更新)。 但是,當我在產品中創建第N個文檔並嘗試保存該文檔時,出現錯誤,提示我嘗試上傳太多文件(最大上傳大小限制為16MB)。

如何更新產品文檔,以便僅將新文檔插入(上傳)到產品中,而不是將整個產品再次上傳到數據庫中?

謝謝!

您需要使用upserts。 您可以通過更新並指定它應該是upsert來完成。 這將允許您設置/更新特定的屬性,而無需指定整個對象。

假設您的產品具有productId字段,您將使用該字段來標識要更新的產品:

db.products.update( { "productId":1234 }, { $set: { document1: { part1: "foo" } } }, true );

最后一個參數(true)表示這是upsert。 您的驅動程序可能會以略有不同的方式指示更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM