Bạn có thể thiết kế lại lược đồ của mình như sau:
{
pairs:[
{k: "a", v: 5775},
{k: "b", v: "b1"},
]
}
Sau đó, bạn lập chỉ mục khóa của mình:
db.people.ensureIndex({"pairs.k" : 1})
Sau đó, bạn sẽ có thể tìm kiếm theo đối sánh chính xác:
db.ent.find({'pairs.k':"a"})
Trong trường hợp bạn sử dụng Chỉ mục thưa thớt và lược đồ hiện tại của bạn, do @WesFreeman đề xuất, bạn sẽ cần tạo chỉ mục trên mỗi khóa bạn muốn tìm kiếm. Nó có thể ảnh hưởng đến hiệu suất ghi hoặc sẽ không được chấp nhận nếu các khóa của bạn không tĩnh.