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

Làm cách nào để cập nhật tập hợp con của một chuỗi trong MongoDB?

Bạn có thể sử dụng một trong các tập hợp sau để truy vấn và cập nhật:

db.test.aggregate( [
  {
      $match: {
           url: { $regex: "300x300" }
      }
  },
  { 
      $addFields: { 
          url: { $split: [ "$url", "300" ] } 
      } 
  },
  { 
      $addFields: { 
          url: { 
              $concat: [ 
                        { $arrayElemAt: [ "$url", 0 ] }, 
                        "600", 
                        { $arrayElemAt: [ "$url", 1 ] }, 
                        "600", 
                        { $arrayElemAt: [ "$url", 2 ] }
              ] 
          }
      }
 }
] ).forEach( doc => db.test.updateOne( { _id: doc._id }, { $set: { url: doc.url } } ) )


Với MongoDB phiên bản 4.2+ bạn có thể chỉ định tập hợp thay vì cập nhật hoạt động với updateMany :

db.test.updateMany(
  { 
      url: { $regex: "300x300" }
  },
  [
    { 
      $addFields: { 
          url: { $split: [ "$url", "300" ] } 
      } 
    },
    { 
      $addFields: { 
          url: { 
              $concat: [ 
                        { $arrayElemAt: [ "$url", 0 ] }, 
                        "600", 
                        { $arrayElemAt: [ "$url", 1 ] }, 
                        "600", 
                        { $arrayElemAt: [ "$url", 2 ] }
              ] 
          }
      }
    }
  ] 
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để chèn tệp nhị phân vào mongodb bằng javascript?

  2. Chuyển đổi dự phòng cho MySQL Replication (và những thứ khác) - Nó có nên được Tự động hóa không?

  3. Bộ bản sao MongoDB được phân phối theo địa lý cho 100% thời gian hoạt động

  4. Xác thực ứng dụng NodeJS và MongoDB bởi JWT

  5. Kết nối MongoDB với MongoLab hết thời gian chờ trong NodeJS trên Heroku