Tôi đang cố gắng cập nhật một phần phụ được chứa trong một mảng trong tài liệu mongodb. Tôi muốn tham khảo các lĩnh vực bằng cách sử dụng chỉ số mảng của nó (các yếu tố trong mảng không có bất kỳ lĩnh vực mà tôi có thể đảm bảo sẽ được định danh duy nhất). Có vẻ như điều này nên dễ dàng để làm, nhưng tôi không thể tìm ra cú pháp.MongoDB: Làm cách nào để cập nhật một phần tử con trong một mảng, được tham chiếu bởi chỉ mục trong mảng?
Đây là những gì tôi muốn làm trong giả-json.
Trước:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
Sau:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
Có vẻ như các truy vấn nên một cái gì đó như thế này:
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
Nhưng điều này không làm việc. Tôi đã dành quá nhiều thời gian để tìm kiếm tài liệu mongodb và thử các biến thể khác nhau về cú pháp này (ví dụ: sử dụng $slice
, v.v ...). Tôi không thể tìm thấy bất kỳ lời giải thích rõ ràng về cách thực hiện kiểu cập nhật này trong MongoDB.
Không .. .. đó là thực sự không rõ. – Moumit