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

Jak odstranit zastaralá pole v Mongo?

Zkuste:

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

kde field je vaše zastaralé pole a collection je sbírka, ze které byl odebrán.

Obecný příkaz aktualizace má tvar db.collection.update( criteria, objNew, upsert, multi ) . false a true koncové argumenty deaktivují režim upsert a povolí vícenásobnou aktualizaci, takže dotaz aktualizuje všechny dokumenty v kolekci (nejen první shodu).

Aktualizace pro MongoDB 2.2+

Nyní můžete poskytnout objekt JSON namísto pozičních argumentů pro upsert a multi.

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


  1. Mongodb se nespustí

  2. Ověření MongoDB na mLab se nezdařilo

  3. Nelze vytvořit jmenný prostor v transakci s více dokumenty (MongoDB 4.0, Spring Data 2.1.0, Spring Boot)

  4. mongodb ekvivalent sql vyberte 'longfield' jako 'a'