ObjectId
- это специальный тип в Mongo, но свойство _id
не обязательно должно быть этого типа.Вы не можете ввести строку или число в ObjectId
, и вы не должны.
Я предполагаю, что проблема, как вы понимаете, заключается в том, что ваш insert
сработал, но когда вы просматривали данные в базе данных, свойство _id
не было похоже на _id: ObjectId("1234")
(если исходный идентификаторбыло 1234).Так и должно быть, и это прекрасно.
Идея ObjectId
состоит в том, что она имеет предопределенную структуру, которая гарантирует (в основном) уникальность в кластере Монго, но это также означает, что она должна иметь эту структуру, в противном случае это не так.ObjectId
.
Вы также упоминаете, что все ваши целочисленные столбцы преобразуются в строки.PHP и библиотеки PHP, как известно, небрежно относятся к типам, поэтому убедитесь, что это не тот случай, когда значения уже являются строками, когда они поступают из результирующего набора MySQL.В худшем случае вы должны явно привести значения перед тем, как вставить их в Mongo.