MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да актуализирам подмножество от низ в MongoDB?

Можете да използвате едно от следните агрегати за запитване и актуализиране:

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 } } ) )


С MongoDB версия 4.2+ можете да посочите агрегацията вместо актуализация операция с 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. Персонализираните имена на взаимоотношения релси/монгоид не работят

  2. Как да направите заявка с настройки на часовата зона в Mongodb

  3. Как мога да получа препращане на данни от една колекция към друга? Mongodb

  4. Персонализиране на имената на bean компонентите на хранилището на Spring Data за използване с множество източници на данни

  5. MongoDb:$geoIntersects за множество входни координати