Mongodb cập nhật một trường

Tôi đang cố gắng cập nhật một phần tử con duy nhất có trong một mảng trong tài liệu MongoDB. Tôi muốn tham chiếu trường bằng chỉ mục mảng của nó (các phần tử trong mảng không có bất kỳ trường nào mà tôi có thể chắc chắn sẽ là số nhận dạng duy nhất). Có vẻ như điều này sẽ dễ dàng thực hiện, nhưng tôi không thể tìm ra cú pháp

Nội dung chính Hiển thị

  • định hướng
  • Quan trọng
  • Quan trọng
  • Trong ví dụ sau, người dùng cố gắng sửa đổi trường db.collection.updateOne( { }, { : { "array.$.field" : value } })4, lọc các tài liệu bằng các trường db.collection.updateOne( { }, { : { "array.$.field" : value } })5, db.collection.updateOne( { }, { : { "array.$.field" : value } })4 và db.students.insertMany( [ { "_id" : 1, "grades" : [ 85, 80, 80 ] }, { "_id" : 2, "grades" : [ 88, 90, 92 ] }, { "_id" : 3, "grades" : [ 85, 100, 90 ] }] )7 và cập nhật giá trị 2021 trong trường db.collection.updateOne( { }, { : { "array.$.field" : value } })4 lên 2022:
  • Làm thế nào để bạn cập nhật một phần tử cụ thể trong một mảng trong MongoDB?
  • Làm cách nào để cập nhật một khoảng cách khác nhau trong MongoDB?
  • Làm cách nào để cập nhật dữ liệu hiện có trong MongoDB?
  • Làm cách nào để tạo một mảng đối tượng trong MongoDB?

Đây là những gì tôi muốn làm trong Pseudo-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ư truy vấn phải là 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 hoạt động. Tôi đã dành quá nhiều thời gian để tìm kiếm các tài liệu MongoDB và thử các biến có thể khác nhau trên cú pháp này (ví dụ:. sử dụng

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
8, v. v. ). Tôi không thể tìm thấy bất kỳ lời giải thích rõ ràng nào về cách thực hiện các loại cập nhật này trong MongoDB

Tài liệu về nhà → Hướng dẫn sử dụng MongoDB Hướng dẫn sử dụng MongoDB

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 Toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 định vị trí xác định một phần tử trong một mảng để cập nhật mà không chỉ định vị trí rõ ràng của phần tử trong mảng

vị trí

Toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 xác định một phần tử trong mảng để cập nhật mà không chỉ định rõ ràng vị trí của phần tử trong mảng

Ghi chú

định hướng

  • To project, or return, an an ant array from read active, please look

    {
      _id : ...,
      other_stuff .. ,
      my_array : [
        { .. old content A .. },
        { .. NEW content B .. },
        { .. old content C .. }
      ]
    }
    
    9 thay thế
  • Để cập nhật tất cả các yếu tố trong một mảng, hãy xem tất cả các vị trí toán tử

    //pseudocode
    db.my_collection.update(
      {_id: ObjectId(document_id), my_array.1 : 1 },
      {my_array.$.content: NEW content B }
    )
    
    2 thay thế
  • Để cập nhật tất cả các yếu tố phù hợp với điều kiện điều kiện hoặc điều kiện bộ lọc mảng, hãy xem toán tử vị trí được lọc thay vì

    //pseudocode
    db.my_collection.update(
      {_id: ObjectId(document_id), my_array.1 : 1 },
      {my_array.$.content: NEW content B }
    )
    
    3

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 position has a expression. ______19 toán tử có dạng.

Khi được sử dụng với các hoạt động cập nhật, ví dụ

//pseudocode
db.my_collection.update(
  {_id: ObjectId(document_id), my_array.1 : 1 },
  {my_array.$.content: NEW content B }
)
5 và______26
  • Toán tử

    {
      _id : ...,
      other_stuff .. ,
      my_array : [
        { .. old content A .. },
        { .. NEW content B .. },
        { .. old content C .. }
      ]
    }
    
    9 vị trí hoạt động như một nơi giữ chỗ cho phần tử đầu tiên phù hợp với
    //pseudocode
    db.my_collection.update(
      {_id: ObjectId(document_id), my_array.1 : 1 },
      {my_array.$.content: NEW content B }
    )
    
    8 và
    {
      _id : ...,
      other_stuff .. ,
      my_array : [
        { .. old content A .. },
        { .. NEW content B .. },
        { .. old content C .. }
      ]
    }
    
    9
    toán tử hoạt động như một trình giữ chỗ cho

  • Trường

    //pseudocode
    db.my_collection.update(
      {_id: ObjectId(document_id), my_array.1 : 1 },
      {my_array.$.content: NEW content B }
    )
    
    9 must export as a section of
    {
      _id : ...,
      other_stuff .. ,
      my_array : [
        { .. old content A .. },
        { .. NEW content B .. },
        { .. old content C .. }
      ]
    }
    
    90. phải xuất hiện như một phần của
    {
      _id : ...,
      other_stuff .. ,
      my_array : [
        { .. old content A .. },
        { .. NEW content B .. },
        { .. old content C .. }
      ]
    }
    
    90

Ví dụ

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9

Bắt đầu từ MongoDB 5. 0, cập nhật các nhà khai thác xử lý các trường tài liệu với tên dựa trên chuỗi thứ tự từ vựng. Các trường có tên số được xử lý theo thứ tự số. Xem Cập nhật hành vi của các nhà khai thác để biết chi tiết

Không sử dụng được vị trí toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 with UPSERT hoạt động vì chèn sẽ sử dụng
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 làm cho tên trường trong tài liệu được chèn. ______19 với các thao tác upsert vì các phần chèn sẽ sử dụng_______19 làm tên trường trong tài liệu được chèn.

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí không thể sử dụng cho các truy vấn vượt qua nhiều hơn một mảng, giả sử như các truy vấn di chuyển trong mảng được lồng trong các mảng khác, vì sự thay thế cho vị trí của vị trí
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 là một
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9
operator cannot be used for queries which traverse more than one array, such as queries that traverse arrays nested within other arrays, because the replacement for the
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9
placeholder is a single value

Khi được sử dụng với toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
95, TOÁN Tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 Vị trí không loại bỏ phần tử phù hợp từ mảng mà thay vào đó đặt nó thành
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
97. Toán tử ______19 không xóa phần tử phù hợp khỏi mảng mà đặt nó thành
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
97.

If truy vấn khớp với mảng bằng toán tử phủ định, giống như giới hạn

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
98,
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
99 hoặc
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
70, thì bạn không thể sử dụng vị trí toán tử để cập nhật các giá trị từ mảng này

Tuy nhiên, nếu phần phủ định của truy vấn nằm trong biểu thức

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
71, thì bạn có thể sử dụng vị trí toán tử để cập nhật trường này

Cập nhật toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí hành động xử lý mơ hồ khi lọc trên nhiều trường mảng. ______19 toán tử cập nhật hoạt động không rõ ràng khi lọc trên nhiều trường mảng.

Khi máy chủ thực thi một phương thức cập nhật, trước tiên nó sẽ chạy một truy vấn để xác minh tài liệu bạn muốn cập nhật. Nếu bản cập nhật các bộ lọc tài liệu trên nhiều mảng, cuộc gọi tiếp theo đến toán tử cập nhật

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 không phải lúc nào cũng cập nhật vị trí cần thiết trong mảng. ______19 toán tử cập nhật không phải lúc nào cũng cập nhật vị trí bắt buộc trong mảng.

Để biết thêm thông tin, hãy xem ví dụ. ví dụ.

Create an collection

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
74 with the after document.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
7

To update the first section has the value is

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
75 lên
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
76 trong mảng
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
77, hãy sử dụng toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí nếu bạn không biết vị trí của phần tử trong mảng. ______19 nếu bạn không biết vị trí của phần tử trong mảng.

Quan trọng

You must include an array as a section of document

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
79

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
1

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí hoạt động như một vị trí giữ cho trận đấu đầu tiên của tài liệu truy vấn cập nhật. Toán tử ______19 đóng vai trò giữ chỗ cho kết quả khớp đầu tiên của tài liệu truy vấn cập nhật.

Sau khi hoạt động, bộ sưu tập

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
74 bao gồm các tài liệu sau.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
5

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí tạo điều kiện cập nhật cho các mảng có chứa các tài liệu nhúng. Sử dụng toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí để truy cập các trường trong tài liệu nhúng với ký hiệu dấu chấm trên toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9. ______19 toán tử tạo điều kiện cập nhật cho các mảng chứa tài liệu được nhúng. Sử dụng toán tử định vị
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9
để truy cập các trường trong tài liệu được nhúng bằng ký hiệu dấu chấm trên
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9
operator.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
2

Please view the following document in the collection

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
74 has the value section ____177 is an a array of the nhúng tài liệu.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
5

Sử dụng toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí để cập nhật trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
18 của phần tử anban đầu tiên phù hợp với
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
19 bằng với điều kiện
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
50. ______19 để cập nhật trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
18 của phần tử mảng đầu tiên phù hợp với điều kiện
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
19 bằng
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
50.

Quan trọng

You must include an array as a section of document

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
79.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
5

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí hoạt động như một vị trí giữ cho trận đấu đầu tiên của tài liệu truy vấn cập nhật.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
0

Sau khi hoạt động, bộ sưu tập

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
74 bao gồm các tài liệu sau. Toán tử ______19 có thể cập nhật phần tử mảng đầu tiên phù hợp với nhiều tiêu chí truy vấn được chỉ định bằng toán tử the
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
71.

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí tạo điều kiện cập nhật cho các mảng có chứa các tài liệu nhúng. Sử dụng toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí để truy cập các trường trong tài liệu nhúng với ký hiệu dấu chấm trên toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
1

Please view the following document in the collection

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
74 has the value section
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
77 is a array of the emiliary materials. Toán tử ______19 cập nhật giá trị của trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
18 trong tài liệu được nhúng đầu tiên có trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
19 có giá trị nhỏ hơn hoặc bằng
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
59 và trường a
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
20 có giá trị lớn hơn
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
75.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
2

Sử dụng toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí để cập nhật trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
18 của phần tử anban đầu tiên phù hợp với
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
19 bằng với điều kiện_______150.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
3

Sau khi hoạt động, tài liệu có giá trị được cập nhật sau

Toán tử cập nhật
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 hoạt động không rõ ràng khi truy vấn có nhiều trường mảng để lọc tài liệu trong bộ sưu tập

Toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 có thể cập nhật phần tử đầu tiên phù hợp với nhiều tiêu chí truy vấn chỉ được định với toán tử
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
71.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
4

Please view the following document in the collection

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
74 có giá trị trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
77 là một mảng các tài liệu nhúng.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
5

Trong ví dụ dưới đây, toán tử

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 cập nhật giá trị của trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
18 trong tài liệu nhúng đầu tiên có trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
19 có giá trị nhỏ hơn hoặc bằng
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
59 và trường
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
20 có giá trị lớn hơn
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
75. ______19 toán tử cập nhật để xác định vị trí nào trong mảng cần cập nhật.
{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
6

Hoạt động này cập nhật tài liệu nhúng đầu tiên phù hợp với các tiêu chí, cụ thể là tài liệu nhúng thứ hai trong mảng

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
7

Nhà điều hành cập nhật

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
9 vị trí hành động xử lý mơ hồ khi truy vấn có nhiều trường mảng để lọc các tài liệu trong bộ sưu tập. Thay vào đó, toán tử cập nhật ______19 đã thay đổi giá trị 2020 thành 2022.

Please view a document in the collection

{
  _id : ...,
  other_stuff .. ,
  my_array : [
    { .. old content A .. },
    { .. NEW content B .. },
    { .. old content C .. }
  ]
}
23, bao gồm các mảng thông tin sinh viên

Trong ví dụ sau, người dùng cố gắng sửa đổi trường db.collection.updateOne( { }, { : { "array.$.field" : value } })4, lọc các tài liệu bằng các trường db.collection.updateOne( { }, { : { "array.$.field" : value } })5, db.collection.updateOne( { }, { : { "array.$.field" : value } })4 và db.students.insertMany( [ { "_id" : 1, "grades" : [ 85, 80, 80 ] }, { "_id" : 2, "grades" : [ 88, 90, 92 ] }, { "_id" : 3, "grades" : [ 85, 100, 90 ] }] )7 và cập nhật giá trị 2021 trong trường db.collection.updateOne( { }, { : { "array.$.field" : value } })4 lên 2022:

Làm thế nào để bạn cập nhật một phần tử cụ thể trong một mảng trong MongoDB?

Để cập nhật một tập hợp các phần tử phù hợp với một số bộ lọc định tính nhất, chúng ta phải sử dụng bộ lọc vị trí toán tử $ [] trong đó một trình lưu trữ cho một đại diện giá trị . Sau đó, chúng ta phải sử dụng tham số thứ ba (tùy chọn) của phương thức UpdateMany để chỉ định một bộ ArrayFilters. sử dụng toán tử vị trí đã lọc $[] trong đó là một trình giữ chỗ cho một giá trị đại diện cho một phần tử duy nhất của mảng . Sau đó, chúng ta phải sử dụng tham số thứ ba (tùy chọn) của phương thức updateMany để chỉ định một bộ ArrayFilters.

Làm cách nào để cập nhật một khoảng cách khác nhau trong MongoDB?

Cập nhật các khoảng cách nhau kết hợp với toán tử vị trí $ [] $ [], kết hợp với toán tử $ [] tất cả các vị trí toán tử, có thể được sử dụng để cập nhật các . Các bản cập nhật sau đây có giá trị lớn hơn hoặc bằng 8 trong các lớp lồng nhau. mảng câu hỏi nếu các lớp liên quan. Toán tử vị trí được lọc $[], kết hợp với toán tử vị trí $[] tất cả, có thể được sử dụng để cập nhật các mảng lồng nhau