sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Update/Upsert vs Insert

Hvis du indsætter dokument, skal MongoDB kontrollere, om dokumentet med samme ObjectId eksisterer eller ej. Hvis det findes, kan dokumentet ikke indsættes.

Samme tilfælde gælder for Update. Det skal kontrollere, om dokumentet eksisterer eller ej. Ellers kan opdatering ikke udføres. Det tilfælde, hvor din opdateringsforespørgsel bliver langsommere, er, når den ikke kan finde dokument baseret på dit ObjectId/indekserede felt.

Ellers skal ydeevnen for indsættelse/opdatering af dokument være den samme.

Så Insert kan være sådan her //(Hurtig)

  1. (Se efter dokument -> Ikke fundet -> Indsæt nyt dokument) Ellers
  2. (Se efter dokument -> Fundet -> Kan ikke indsættes)

Og Opdater med upsert (ObjectId tilgængeligt) //(Hurtig)

  1. (Se efter dokument -> Ikke fundet -> Indsæt nyt dokument) Ellers
  2. (Søg efter dokument -> Fundet -> Opdater dokumentet)

Eller Opdater med upsert (Uden ObjectId) //Dette er langsomt

  1. (Find ObjectId'er (langsom) -> Ikke fundet -> Indsæt nyt dokument) Else
  2. (Find ObjectId'er (langsom)-> Fundet -> Opdater dokumenterne)


  1. MongoDB-serveren er ikke tilgængelig i lokalt netværk trods binding af ip

  2. MongoDB - Forespørgsel mellem et tidsinterval på timer

  3. Søgestreng med specialtegn i MongoDB-dokument

  4. Indlæser JWplayer indlejringskode fra databasesamling til en sideskabelon i meteor.js