sql >> Databáze >  >> NoSQL >> MongoDB

vytvářet a aktualizovat více dokumentů MongoDB v jednom volání

V zásadě potřebujete bulkWrite operace s upsert

const array = [
    {  someId: 1, someProp: prop1, isOpen: true  },
    {  someId: 2, someProp: prop1, isOpen: true  },
    {  someId: 5, someProp: prop1, isOpen: true  },
    {  someId: 6, someProp: prop1, isOpen: true  }
]


Model.bulkWrite(
  array.map((data) => 
    ({
      updateOne: {
        filter: { someId: data.someId },
        update: { $set: { isOpen: false, someProp: data.someProp } },
        upsert: true
      }
    })
  )
})

Poskytne vám výstup

[
  {  someId: 1, someProp: prop1, isOpen: false  },
  {  someId: 2, someProp: prop1, isOpen: false  },
  {  someId: 3, someProp: prop1, isOpen: true  },
  {  someId: 4, someProp: prop1, isOpen: true  },
  {  someId: 5, someProp: prop1, isOpen: true  },
  {  someId: 6, someProp: prop1, isOpen: true  }
]



  1. nelze se připojit k serveru 127.0.0.1 shell/mongo.js

  2. Jak zlepšit využití CPU serveru Redis?

  3. Optimalizace souběžných požadavků ImageMagick pomocí redis/php-resque

  4. Shell MongoDB a server se neshodují