sql >> Databasteknik >  >> NoSQL >> MongoDB

Kontrollera om MongoDB upsert gjorde en infogning eller en uppdatering

Ja, det finns, vid ett säkert anrop (eller getLastError) kommer uppdateringsfunktionen att returnera en array med ett upsert-fält och ett updatedExisting field.

Du kan läsa PHP-versionen av detta här:http://php.net/manual/en/mongocollection.insert.php längst ner.

Som det står i dokumentationen om upserted :

Om en upsert inträffade kommer detta fält att innehålla den nya postens _id-fält. För upserts kommer antingen detta fält eller updatedExisting att finnas (såvida inte ett fel uppstod).

Så upserted innehåller _id av den nya posten om en infogning gjordes eller så ökar den updatedExisting om den uppdaterade en post.

Jag är säker på att en liknande sak förekommer i alla drivrutiner.

Redigera

Det kommer faktiskt att vara en boolean i updatedExisting fältet true eller false



  1. Hur man lagrar och hämtar en ordbok med redis

  2. Batchuppsättningsdata från Dictionary till Redis

  3. Mongodb samlar sortering och gräns inom gruppen

  4. Vad är det snabbaste sättet att kopiera en samling inom samma databas?