Гораздо лучшим решением было бы оставить столбец _id как есть и иметь отдельные поля userId и folderId в документе или создать отдельное поле поле с ними обоими вместе.
Что касается того, будет ли это "так быстро" ... зависит от вашего запроса, но для упорядочивания по дате создания документа, например, вы потеряете возможность простого заказа по _id вы также потеряете преимущества для шардинга и распространения .
Однако, если вы хотите использовать оба этих идентификатора для вашего _id , есть еще один вариант ...
В действительности вы можете использовать оба , но оставить их отдельно ... например, это действительный _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"
}
>