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

Jak przekonwertować string ze znakami w int dla całej kolekcji?

Jeśli chcesz przekonwertować całą kolekcję, możesz to zrobić za pomocą potoku agregacji.

Musisz przekonwertować walutę na ciąg znaków za pomocą $substr i $toInt( lub $toDouble lub $convert cokolwiek pasuje do twojego przypadku) w $project stage i $out jako ostatni etap agregacji. $out zapisuje wynik potoku agregacji do podanej nazwy kolekcji.

Ale bądź ostrożny podczas używania $out . Zgodnie z oficjalną dokumentacją mongodb :

Spróbuj tego:

db.collection_name.aggregate([
    {
        $project: {
            category : "$category",
            category_name : "$category_name",
            lot_title : "$lot_title",
            seller_name : "$seller_name",
            seller_country : "$seller_country",
            bid_count : "$bid_count",
            winning_bid : { $toInt : {$substr : ["$winning_bid",2,-1]}},
            bid_amount : "$bid_amount",
            lot_image : "$lot_image"
        }
    },{
        $out : "collection_name"
    }
])

może być konieczne użycie allowDiskUse : true jako opcję potoku agregacji, ponieważ masz dużo dokumentów i może przekroczyć limit 16 MB mongodb.

Nie zapomnij zastąpić collection_name z rzeczywistą nazwą kolekcji i uwzględnij wszystkie wymagane pola w $project etap, którego potrzebujesz w kolekcji. I proszę najpierw dokładnie sprawdzić wartość albo z innym temporary_collection lub po prostu usuwając etap $out i sprawdzając wynik aggregation potok.

Aby uzyskać szczegółowe informacje, przeczytaj oficjalną dokumentację mongodb $out , $toInt , $toDouble , $convert, $substr i allowDiskUse .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JSR223 (Groovy) nie może uzyskać dostępu do MongoDB (3.0.3) w Jmeter (2.13)

  2. aktualizacja przez id nie działa w manguście

  3. wykonuj matematykę w zapytaniach wyszukiwania mongodb

  4. Mongo $regex z nawiasem i granicą słowa

  5. Gdzie należy dodać opcję --rest dla MongoDB?