-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Currently, mongodb/laravel-mongodb automatically maps MongoDB’s _id field to Laravel’s id attribute on Eloquent models.
This makes it difficult to use a custom id field alongside MongoDB’s native _id.
Example use case:
I want to store documents like this:
{ "_id": ObjectId("6518e9c4c6a3d1f9b3a2f1a7"), "id": "lyqxei40yhyw", "title": "Some custom HTML block" }
But right now, if I set id, it overrides the default _id mapping or causes conflicts.
Proposed solution:
Add a configuration option or model-level property to disable the automatic mapping of _id to id, so developers can:
- Keep _id as the real MongoDB ObjectId
- Define their own id (or any other field like customId) without collisions
Migration issue:
I am migrating from the package jenssegers/mongodb, where having both _id and id fields was possible.
Since I already have large amounts of existing data with both fields present, the current forced mapping causes serious migration issues and makes it impossible to work with my existing dataset.