MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

cập nhật phần tử cụ thể từ mongodb mảng tài liệu lồng nhau nơi có hai kết quả phù hợp

Demo - https://mongoplayground.net/p/VaE28ujeOPx

Sử dụng $ (cập nhật)

db.collection.update({
  "notes": {
    "$elemMatch": { "block": 2, "curse": 5 }
  }
},
{
  $set: { "notes.$.score.b4": 40 }
})

Đọc nâng cấp :true

Cập nhật

Demo - https://mongoplayground.net/p/iQQDyjG2a_B

Sử dụng $ function

db.collection.update(
    { "_id": "sad445" },
    [
      {
        $set: {
          notes: {
            $function: {
              body: function(notes) {
                        var record = { curse:5, block:2, score:{ b4:40 } };
                        if(!notes || !notes.length) { return [record]; } // create new record and return in case of no notes
                        var updated = false;
                        for (var i=0; i < notes.length; i++) {
                            if (notes[i].block == 2 && notes[i].curse == 5) { // check condition for update
                                updated = true;
                                notes[i].score.b4=40; break; // update here
                            }
                        }
                        if (!updated) notes.push(record); // if no update push the record in notes array
                        return notes;
                    },
              args: [
                "$notes"
              ],
              lang: "js"
            }
          }
        }
      }
    ]
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:cập nhật một mảng trong mảng

  2. Cách theo dõi các yêu cầu MongoDB từ một ứng dụng bảng điều khiển

  3. MongoDB Không đủ dung lượng trống cho các tệp tạp chí

  4. MongoDB:Làm cách nào để có được danh sách riêng biệt của các giá trị trường tài liệu con?

  5. Gọi Hàm Javascript được Lưu trữ trong MongoDB trong C # .Net