Nie, wcale nie jest źle, a w rzeczywistości wbudowany ObjectId
jest dość duży w indeksie, więc jeśli uważasz, że masz coś lepszego, możesz zmienić domyślną wartość _id
pole do czegokolwiek.
Ale i to jest duże ale , przy podejmowaniu decyzji o odejściu od domyślnego sformułowania ObjectId
należy wziąć pod uwagę pewne kwestie , szczególnie w przypadku korzystania z identyfikatorów _ids automatycznego zwiększania, jak pokazano tutaj:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field
Wielowątkowość nie jest tak dużym problemem, ponieważ findAndModify
i zamki atomowe mogą się tym zająć, ale wtedy po prostu trafiasz na swój pierwszy problem. findAndModify
nie jest najszybszą ani najlżejszą funkcją, a podczas regularnego korzystania z niej zauważono znaczne spadki wydajności.
Musisz także wziąć pod uwagę obciążenie związane z robieniem tego samemu, nawet bez findAndModify
. Do każdej wkładki potrzebne będzie dodatkowe zapytanie. Wyobraź sobie, że masz unikalny identyfikator, który musisz sprawdzać za każdym razem, gdy chcesz wstawić. W końcu szybkość wstawiania spadnie do indeksowania, a czas blokady wzrośnie.
Oczywiście ObjectId
jest naprawdę dobry w byciu wyjątkowym bez konieczności sprawdzania lub formułowania własnej wyjątkowości poprzez dotknięcie bazy danych przed wstawieniem, dlatego nie ma tego narzutu.
Jeśli nadal uważasz, że liczba całkowita _id pasuje do Twojego scenariusza, zrób to, ale pamiętaj o narzutach opisanych powyżej.