Możesz przeprojektować swój schemat w następujący sposób:
{
pairs:[
{k: "a", v: 5775},
{k: "b", v: "b1"},
]
}
Następnie indeksujesz swój klucz:
db.people.ensureIndex({"pairs.k" : 1})
Następnie będziesz mógł wyszukiwać według dokładnego dopasowania:
db.ent.find({'pairs.k':"a"})
W przypadku korzystania z indeksu Sparse i aktualnego schematu zaproponowanego przez @WesFreeman, będziesz musiał utworzyć indeks dla każdego klucza, który chcesz przeszukać. Może to wpłynąć na wydajność zapisu lub będzie niedopuszczalne, jeśli klucze nie są statyczne.