MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verbesserte Abfragefelder existieren in MongoDB

Sie können Ihr Schema wie folgt umgestalten:

{
  pairs:[
  {k: "a", v: 5775},
  {k: "b", v: "b1"},
  ]
}

Dann indizieren Sie Ihren Schlüssel:

db.people.ensureIndex({"pairs.k" : 1})

Danach können Sie nach exakter Übereinstimmung suchen:

db.ent.find({'pairs.k':"a"})

Falls Sie sich für den Sparse-Index und Ihr aktuelles Schema entscheiden, das von @WesFreeman vorgeschlagen wird, müssen Sie einen Index für jeden Schlüssel erstellen, den Sie durchsuchen möchten. Dies kann die Schreibleistung beeinträchtigen oder ist nicht akzeptabel, wenn Ihre Schlüssel nicht statisch sind.