MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose dodaje wiele obiektów do tablicy, jeśli nie istnieje na podstawie

Możesz spróbować użyć bulkWrite działanie w mongodb

Załóżmy, że masz następujący ładunek do aktualizacji

const payload = [
  { key: "city", label: "CITY" }, { key: "gender", label: "GENDER" },
  { key: "city", label: "CITY1" }, { key: "city2", label: "CITY" }
]

Zapytanie o zbiorczą aktualizację dokumentów

Model.bulkWrite(
  payload.map((data) => 
    ({
      updateOne: {
        filter: { '_id': 'xxxx', 'additional.key' : { $ne: data.key } },
        update: { $push: { additional: data } }
      }
    })
  )
})

Który wyśle ​​zbiorcze żądanie aktualizacji w ten sposób

bulkWrite([
  { updateOne: { filter: { '_id': 'xxxx', 'additional.key' : { $ne: data.key } }, update: { $push: { additional: data } } } },
  { updateOne: { filter: { '_id': 'xxxx', 'additional.key' : { $ne: data.key } }, update: { $push: { additional: data } } } }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Geograficznie rozproszone zestawy replik MongoDB dla 100% czasu sprawności

  2. Zapytanie Java/MongoDB według daty

  3. Relacje MongoDB:osadzanie czy odwołanie?

  4. Unikalne dokumenty używające wielu wartości w schemacie Mongoose

  5. Mongoose TypeError:użytkownik nie jest konstruktorem