Tenk deg følgende dokument av brukere
samling:
{"adresse": {"by": "Los Angeles", "state": "California", "pinkode": "123"}, "tags": ["music", "cricket", "blogger"], "name": "Tom Benzamin"}
Listen dokumentet inneholder en adresse sub-dokument Hotell og en tags rekke
indeksering Array Fields.
Anta at vi ønsker å søke bruker dokumenter basert på sine koder. For dette vil vi skape en indeks på tags array i samlingen.
Opprette en indeks på rekke igjen skaper separate indeksoppføringer for hvert av sine felt. Så i vårt tilfelle når vi oppretter en indeks på tags array, vil separate indekser opprettes for sin verdier musikk, cricket og blogger.
For å lage en indeks på tags array, bruke følgende kode:
> db.users.ensureIndex ({"tags": 1})
Etter å ha laget indeksen kan vi søke på tags feltet av samlingen som dette:
> db.users.find ({tags: "cricket"})
For å verifisere at riktig indeksering brukes, bruk følgende forklare
kommando:
> db.users.find ({tags: "cricket"}). forklare ()
Listen forklare kommandoen resulterte i "markøren ":". BtreeCursor tags_1 "som bekrefter at riktig indeksering brukes
indeksering Sub-Document Fields:
Anta at vi ønsker å søke dokumenter basert på by, stat og pinkode felt. Siden alle disse feltene er del av adressen sub-dokument feltet, vil vi lage indeks på alle feltene i sub-dokumentet.
For å opprette indeksen på alle de tre feltene i sub-dokument, kan du bruke følgende code:
>db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1})
Once indeksen er opprettet, vi kan søke for noen av de underdokument felt bygges denne indeksen som følger:
> db.users.find ({"address.city": "Los Angeles"})
Husk at spørringen uttrykket må følge rekkefølgen av indeksen spesifisert. Så indeksen opprettet ovenfor ville støtte følgende spørsmål:
> db.users.find ({"address.city": "Los Angeles", "address.state": "California"}) Anmeldelser
Det vil også støtte følgende query:
>db.users.find({"address.city":"LosAngeles","address.state":"California","address.pincode":"123"})