Có vẻ như không thể đổi tên một trường trong một mảng từ dòng lệnh như đã trả lời trong câu hỏi này:
MongoDB đổi tên trường cơ sở dữ liệu trong mảng
Tuy nhiên, có thể thay đổi các giá trị này thông qua RockMongo theo đề xuất của người dùng Liad Livnat.
Đối với trường hợp cụ thể của tôi, khi ở đó, tôi cũng đã xóa mảng và thay đổi cấu trúc thành:
{
"field1": "value 1",
"field2": {"subfield1": "value 2", "subfield2": "value 3"},
"field3": "value 4"
}
Sau đó, có thể truy vấn đối tượng này với:
db.myCollection.find( {"field2.subfield2":"value 3"} );