#mongodb #type-conversion #pymongo
Вопрос:
Используя pymongo
библиотеку Python, следующее выполняет ту же задачу примерно за то же время:
my_collection.update_many(
{},
[{'$set': {'ptsScored': {'$toInt': '$ptsScored'}}}]
)
my_collection.update_many(
{},
[{ '$set': { 'ptsScored': { '$convert': { 'input': "$ptsScored", 'to': 16 } } }}]
)
Оба успешно преобразуют ptsScored
поле из строки в int. Типы по этой ссылке. Учитывая равную производительность, есть ли какая-либо причина использовать 1 подход по сравнению с другим? Является ли 1 из $toInt
них или $convert
новее другого? Или это 100% предпочтение, которое следует использовать на данном этапе и двигаться вперед?
Комментарии:
1. Нет никакой разницы в функциональности двух операторов;
$toInt
это синтаксический сахар. Оба оператора были введены с MongoDB v4.0.2. в этом есть смысл, спасибо. Да
$toInt
чувствует себя немного чище и немного проще в использовании3. Они оба выполняют одну и ту же функцию, но $convert позволяет вам указать, как работать с ошибками, нечисловыми строками и т. Д., Где $toInt просто не сработает, если возникнет что-либо неожиданное.