O wiele lepszym rozwiązaniem byłoby pozostawienie _id kolumna bez zmian i mieć oddzielny identyfikator użytkownika i identyfikator folderu pola w dokumencie lub utwórz osobne pole, łącząc je oba.
Co do tego, czy będzie „tak szybko”… zależy od zapytania, ale przy zamawianiu według daty „utworzenia” dokumentu na przykład stracisz możliwość zamawiania według _id stracisz również korzyści z shardingu i dystrybucji .
Jeśli jednak chcesz użyć obu tych identyfikatorów dla swojego _id jest jeszcze jedna opcja ...
W rzeczywistości możesz używać obu ale zostaw je oddzielne ... na przykład jest to prawidłowy _id :
> var doc = { "_id" : { "userID" : 12345, "folderID" : 5152 },
"field1" : "test", "field2" : "foo" };
> db.crazy.save(doc);
> db.crazy.findOne();
{
"_id" : {
"userID" : 12345,
"folderID" : 5152
},
"field1" : "test",
"field2" : "foo"
}
>