MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zmienić typ pola?

Jedyny sposób na zmianę $type danych jest wykonanie aktualizacji danych, w przypadku których dane mają prawidłowy typ.

W tym przypadku wygląda na to, że próbujesz zmienić $type od 1 (podwójny) do 2 (ciąg).

Więc po prostu załaduj dokument z bazy danych, wykonaj rzutowanie (new String(x) ), a następnie ponownie zapisz dokument.

Jeśli chcesz to zrobić programowo i całkowicie z powłoki, możesz użyć find(...).forEach(function(x) {}) składnia.

W odpowiedzi na drugi komentarz poniżej. Zmień pole bad od liczby do ciągu w kolekcji foo .

db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {   
  x.bad = new String(x.bad); // convert field to string
  db.foo.save(x);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. używa czasu utworzenia mongodb ObjectId

  2. Policz wyniki za pomocą sterownika Java MongoDB 3.0

  3. Konwersja Dictionary<string, object>-to-BsonDocument z pominięciem pola _t

  4. Potok agregacji Mongodb, jak ograniczyć grupowe push

  5. Jak naprawić mój mongodb?