Solusi yang jauh lebih baik adalah meninggalkan _id kolom apa adanya dan memiliki userId separate yang terpisah dan folderId bidang di dokumen Anda, atau buat bidang terpisah dengan menggabungkan keduanya.
Adapun apakah itu akan "secepat" ... tergantung pada permintaan Anda, tetapi untuk memesan berdasarkan tanggal "buat" dokumen misalnya Anda akan kehilangan kemampuan untuk hanya memesan dengan _id Anda juga akan kehilangan manfaat untuk sharding dan distribusi .
Namun jika Anda ingin menggunakan kedua ID tersebut untuk _id . Anda ada satu pilihan lain ...
Anda benar-benar dapat menggunakan keduanya tapi biarkan terpisah ... misalnya ini adalah _id yang valid :
> 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"
}
>