У вас есть возможность создать string
или long
(Int64). Int32 не может вместить размер.
Размер хранилища строковых данных и индекса будет немного больше. Например, я создал миллион документов с числовыми и строковыми типами данных isbn numbers (в двух разных коллекциях). Пример документа выглядел так: { "_id" : ObjectId("5dc8d8fef25cf42fe848076d"), "isbn" : 1000000999999 }
. db.collection.stats()
показывает информацию о размерах:
"size" : 36000000,
"count" : 1000000,
"avgObjSize" : 36,
"storageSize" : 12169216,
"indexSizes" : {
"_id_" : 9920512,
"isbn_1" : 10887168
},
"size" : 46000000,
"count" : 1000000,
"avgObjSize" : 46,
"storageSize" : 15015936,
"indexSizes" : {
"_id_" : 9916416,
"isbn_1" : 11018240
},
Кроме того, отмечается, что запросы к isbn одинаково быстры, в целом, независимо от типа данных.
ISBN отображаются в виде структурированного числанапример, 978-3-16-148410-0
. Если вы, вероятно, будете использовать его в этом формате в приложении, его можно сохранить в виде структурированной строки.