簡體   English   中英

重命名MongoDB中數組中的嵌入式文檔中的字段不起作用

[英]Renaming a field in an embedded Document in an Array in MongoDB not working

第一步

> db.myCollection.find();
{ "_id" : ObjectId("2358523892345"), "field1" : "value 1", "field2" : [ { "subfield1" : "value 2" }, { "Subfield2" : "value 3" } ], "field3" : "value 4" }

我想重命名場Subfield2subfield2 我試過了:

第二步

> db.myCollection.update ( { "field3": "value 4" }, {$rename: {"Subfield2": "subfield2" } } )

然后再次運行find()並獲得與“第一步”相同的結果,即該字段未重命名。

使用MongoDB術語,我想我要做的是“重命名數組中嵌入式文檔中的字段”。

參考文獻

http://docs.mongodb.org/manual/reference/operator/rename/

似乎無法從命令行重命名數組中的字段,如以下問題所示:

MongoDB重命名數組中的數據庫字段

如文檔中所述,無法重命名數組中的字段。 唯一的選擇是遍歷收集文檔,閱讀它們,並使用$ unset old / $ set new操作更新每個文檔。

可以根據用戶Liad Livnat的建議通過RockMongo更改這些值。

對於我的特定實例,在那里,我還刪除了數組並將結構更改為:

{
  "field1": "value 1",
  "field2": {"subfield1": "value 2", "subfield2": "value 3"},
  "field3": "value 4"
}

然后可以使用以下方法查詢此對象:

db.myCollection.find( {"field2.subfield2":"value 3"} );

如果您想手動更新它,我建議您安裝rockmongo,rockmongo是使用mongo數據庫的好工具,只需將其提取到服務器上並連接到數據庫即可。 在那里,您會發現對mongo數據庫,表和記錄的更新非常容易。

搖滾蒙哥

暫無
暫無

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

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