Mnohem lepším řešením by bylo ponechat _id sloupec tak, jak je, a mají samostatné userId a folderId pole v dokumentu, nebo vytvořte samostatné pole s oběma zkombinovanými.
Pokud jde o to, zda to bude "stejně rychlé" ... záleží na vašem dotazu, ale například při objednávání podle data "vytvoření" dokumentu byste ztratili možnost jednoduše objednávat podle _id také byste přišli o výhody pro sharding a distribuci .
Pokud však chcete pro své _id použít obě tato ID existuje ještě jedna možnost ...
Ve skutečnosti můžete použít obě ale nechte je oddělené ... například toto je platné _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"
}
>