[英]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.