sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur tar man bort föråldrade fält i Mongo?

Försök:

db.collection.update(
    { '<field>': { '$exists': true } },  // Query
    { '$unset': { '<field>': true  } },  // Update
    false,                               // Upsert
    true                                 // Multi-update
)

där field är ditt utfasade fält och collection är samlingen den togs bort från.

Det allmänna uppdateringskommandot har formen db.collection.update( criteria, objNew, upsert, multi ) . false och true efterföljande argument inaktiverar upsert-läge och aktiverar multiuppdatering så att frågan uppdaterar alla dokument i samlingen (inte bara den första matchningen).

Uppdatering för MongoDB 2.2+

Du kan nu tillhandahålla ett JSON-objekt istället för positionsargument för upsert och multi.

db.collection.update(
    { '<field>': { '$exists': true } },  // Query
    { '$unset': { '<field>': true  } },  // Update
    { 'multi': true }                    // Options
)


  1. MongoDB ETIMEOUT

  2. Infoga DBObject i MongoDB med hjälp av Spring Data

  3. Hur kan jag hämta underdokument från en array?

  4. JavaScript har slut på minne när du strömmar stora filer