MongoDB: cursor.hint () метод
cursor.hint
Метод cursor.hint () используется, чтобы заставить MongoDB использовать определенный индекс для запроса.
Синтаксис:
cursor.hint (индекс)
Параметры:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
индекс | Индекс, который намекает или заставляет MongoDB использовать при выполнении запроса. Укажите индекс либо по имени индекса, либо по документу спецификации индекса. | необходимые | строка или документ |
Пример документа в коллекции restaurant_new:
{
"address": {
"building": "1007",
"coord": [ -73.856077, 40.848447 ],
"street": "Morris Park Ave",
"zipcode": "10462"
},
"borough": "Bronx",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
{ "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
{ "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
{ "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
{ "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
],
"name": "Morris Park Bake Shop",
"restaurant_id": "30075445"
}
...............
Пример: MongoDB: cursor.hint () метод
Предположим, что следующий индекс уже существует в коллекции restaurant_new
> db.restaurants_new.getIndexes();
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.restaurants_new"
},
{
"v" : 1,
"key" : {
"cuisine" : 1
},
"name" : "cuisine_1",
"ns" : "test.restaurants_new"
}
]
В следующем примере возвращаются все документы в коллекции с именем restaurant_new с использованием индекса в поле кухни.
db.restaurants_new.find().hint( { cuisine: 1 } );
or
db.restaurants_new.find().hint( "cuisine_1" );
Выход:
> db.restaurants_new.find (). hint ({kitchen: 1}); {"_id": ObjectId ("55c3043ab165fa6355ec6374"), "address": {"building": "1345", "corre": [-73.959249, 40.768076], "street": "2 Avenue", "zipcode": " 10021 "}," местный ":" Манхэттен "," кухня ":" афганская "," классы ": [{" date ": ISODate (" 2014-10-07T00: 00: 00Z ")," grade ":" А "," оценка ": 9}, {"дата": ISODate ("2013-10-23T00: 00: 00Z"), "оценка": "A", "оценка": 8}, {"дата": ISODate ("2012-10-26T00: 00 : 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-04-26T00: 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" date ": ISODate (" 2012-01-12T00: 00: 00Z ")," grade ":" P "," score ": 10}], "name": "Дом афганского шашлыка", "restaurant_id": "40552806"} {"_id": ObjectId ("55c3043ab165fa6355ec649f"), "address": {"building": "34", "corre": [-73.9883612, 40.7286391], "street": "St Marks Place", "почтовый индекс": "10003"}, "городской округ": "Манхэттен", "кухня": "афганская", "классы": [{"дата": ISODate ("2014-02-20T00: 00: 00Z"), "класс": "Оценка" : 12}, {"дата": ISODate ("2013-08-06T00: 00: 00Z"), "оценка": "B", "оценка": 17}, {"дата": ISODate ("2013-01- 31T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-05-24T00: 00: 00Z ")," оценка ":" A " , "оценка": 10}, {"дата": ISODate ("2011-12-13T00: 00: 00Z"), "оценка": "A", "оценка": 10}, {"date": ISODate ("2011-08-25T00: 00: 00Z"), "grade": "A", "Score": 10}], "name": "Pass Khyber", "restaurant_id ":" 40589545 "} {"_id": ObjectId ("55c3043ab165fa6355ec6558"), "address": {"building": "764", "corre": [-73.9880435, 40.7641423], "street": "9 Avenue", "zipcode": " 10019 "}," местный ":" Манхэттен "," кухня ":" афганская "," классы ": [{" date ": ISODate (" 2014-12-30T00: 00: 00Z ")," grade ":" А "," оценка ": 12} , {"дата": ISODate ("2013-10-10T00: 00: 00Z"), "оценка": "B", "оценка": 19}, {"дата": ISODate ("2013-02-25T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-08-09T00: 00: 00Z ")," оценка ":" C "," оценка ": 2}, {" дата ": ISODate (" 2012-02-16T00: 00: 00Z ")," оценка ":" А "," оценка ": 9}] , "name": "Дом афганского шашлыка # 1", "restaurant_id": "40616799"} {"_id": ObjectId ("55c3043ab165fa6355ec6a7b"), "address": {"building": "787", "corre": [-73.9880886, 40.7651331], "street": "9 Avenue", "zipcode": " 10019 "}," городской округ ":" Манхэттен "," кухня ":" афганская "," классы ": [{" дата ": ISODate (" 2014-07-22T00: 00: 00Z ")," класс ":" А "," оценка ": 3}, {"дата": ISODate ("2013-07-08T00: 00: 00Z"), "оценка": "A", "оценка": 2}, {"дата": ISODate ("2013-02-05T00: 00 : 00Z ")," оценка ":" A "," оценка ": 2}, {" дата ": ISODate (" 2011-11-28T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}]," name ":" Ariana Kebab House "," restaurant_id ":" 40868400 "} {"_id": ObjectId ("55c3043bb165fa6355ec8ce2"), "address": {"building": "259-11", "ord": [-73.708831, 40.73748399999999], "street": "Hillside Avenue", "zipcode" : "11004"}, "городской округ": "Королевы", "кухня": "афганская", "классы": [{"дата": ISODate ("2014-09-15T00: 00: 00Z"), "класс") : "А", " оценка ": 13}, {" дата ": ISODate (" 2013-09-18T00: 00: 00Z ")," оценка ":" А "," оценка ": 7}, {" дата ": ISODate (" 2013 -04-18T00: 00: 00Z ")," оценка ":" B "," оценка ": 21}, {" дата ": ISODate (" 2012-08-29T00: 00: 00Z ")," оценка ": «A», «оценка»: 2}, {«дата»: ISODate («2012-02-09T00: 00: 00Z»), «оценка»: «A», «sc руда ": 11}]," name ":" Дом афганского кебоба "," restaurant_id ":" 41535706 "} {"_id": ObjectId ("55c3043bb165fa6355ec8f12"), "address": {"building": "68-16", "corre": [-73.79474420000001, 40.7332144], "street": "Fresh Meadow Lane", "почтовый индекс ":" 11365 "}," городской округ ":" Королевы "," кухня ":" афганская "," классы ": [{" дата ": ISODate (" 2013-11-23T00: 00: 00Z ")," класс " ":" А ", "оценка": 13}, {"дата": ISODate ("2013-06-01T00: 00: 00Z"), "оценка": "А", "оценка": 13}, {"дата": ISODate (" 2012-02-27T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2011-09-03T00: 00: 00Z ")," оценка " : "C", "score": 34}], "name": "Бахтер афганский халяль кабаб", "restaurant_id": "41559771"} {"_id": ObjectId ("55c3043bb165fa6355ec900e"), "address": {"building": "43-27", "corre": [-73.8260645, 40.751886], "street": "Main Street", "zipcode" : "11355"}, "городской округ": "Королевы", "кухня": "афганская", "классы": [{"date": ISODate ("2014-02-25T00: 00: 00Z"), "grade" : "А", "оценка": 12 }, {"date": ISODate ("2013-08-29T00: 00: 00Z"), "grade": "B", "Score": 15}, {"date": ISODate ("2013-03-05T00 : 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2013-02-13T00: 00: 00Z ")," оценка ":" P ", "оценка": 5}, {"дата": ISODate ("2012-06-28T00: 00: 00Z"), "оценка": "B", "оценка": 17} , {"date": ISODate ("2011-06-18T00: 00: 00Z"), "grade": "A", "Score": 13}], "name": "Choopan Kabab Restaurant", "restaurant_id" : "41569155"} {"_id": ObjectId ("55c3043bb165fa6355ec9b4e"), "address": {"building": "6729", "corre": [-73.8204147, 40.724243], "street": "Main St", "zipcode": " 11367 "}," местный ":" Королевы "," кухня ":" Афганская "," классы ": [{" date ": ISODate (" 2014-08-20T00: 00: 00Z ")," grade ":" A "," Score ": 4}, {" дата ": ISODate (" 2013-07-31T00: 00: 00Z ")," оценка ":" A "," оценка ": 5}, {" date ": ISODate (" 2012-08-04T00: 00: 00Z ")," оценка ":" A "," оценка ": 5}]," имя ":" Бахтар Кабаб "," restaurant_id ":" 41661199 "} {"_id": ObjectId ("55c3043bb165fa6355ec9c32"), "address": {"building": "984", "ordin ": [-73.9673814, 40.63341399999999]," улица ":" Проспект Кони-Айленда "," почтовый индекс ": "11230"}, "городской округ": "Бруклин", "кухня": "афганская", "классы": [{"дата": ISODate ("2014-09-19T00: 00: 00Z"), "класс": «C "," оценка ": 38}, {" дата ": ISODate (" 2014-03-27T00: 00: 00Z ")," оценка ":" А "," оценка ": 12}, {" дата ": ISODate ("2014-02-12T00: 00: 00Z"), "оценка": "P", "оценка": 6}, {"дата": ISODate ("2013-06-18T00: 00: 00Z"), " оценка ":" А "," оценка ": 10}, {" дата ": ISODate (" 2012-06-05T00: 00: 00Z ")," оценка ":" А " , "score": 6}], "name": "Bahar Masala", "restaurant_id": "41670224"} {"_id": ObjectId ("55c3043bb165fa6355eca97a"), "address": {"building": "110-23", "corre": [-73.8374947, 40.696891], "street": "Ямайский проспект", "почтовый индекс" : "11418"}, "городской округ": "Королевы", "кухня": "афганская", "классы": [{"date": ISODate ("2014-07-09T00: 00: 00Z"), "класс" : "Оценка" : 12}, {"дата": ISODate ("2014-01-02T00: 00: 00Z"), "оценка": "A", "оценка": 11}], "name": "Новый бхатарский афганский халяль Кабаб & Gyro King "," restaurant_id ":" 50001906 "} {"_id": ObjectId ("55c3043bb165fa6355ecb140"), "address": {"building": "2310", "corre": [-73.91336969999999, 40.7742674], "street": "31St St", "почтовый индекс": " 11105 "}," местный ":" Королевы "," кухня ":" Афганская "," классы ": [{" date ": ISODate (" 2014-03-27T00: 00: 00Z ")," grade ":" Оценка" : 13}], "name": "Дом Балх Шиш Кабаб", "restaurant_id": "50007432"} {"_id": ObjectId ("55c3043bb165fa6355ecb260"), "address": {"building": "33-35", "ordin ": [-73.7896131, 40.7666136]," улица ":" бульвар Фрэнсиса Льюиса "," почтовый индекс ":" 11358 "}," городской округ ":" Королевы "," кухня ":" афганская "," классы ": [{" дата ": ISODate (" 2014-06-25T00: 00: 00Z ")," класс " ":" А ", "score": 11}], "name": "Дом Арья Кабоб", "restaurant_id": "50008452"} {"_id": ObjectId ("55c3043bb165fa6355ecb4d8"), "address": {"building": "72-55", "corre": [-73.812895, 40.7276946], "street": "бульвар Киссены", "почтовый индекс" : "11367"}, "городской округ": "Королевы", "кухня": "афганская", "классы": [{"дата": ISODate ("2014-08-28T00: 00: 00Z"), "класс") : "Оценка" : 12}], "name": "Tariq Афганистан Кабаб", "restaurant_id": "50010806"} {"_id": ObjectId ("55c3043bb165fa6355ecb4da"), "address": {"building": "68-16", "corre": [-73.79474420000001, 40.7332144], "street": "Fresh Meadow Lane", "почтовый индекс ":" 11365 "}," городской округ ":" Королевы "," кухня ":" афганская "," классы ": [{" дата ": ISODate (" 2015-01-12T00: 00: 00Z ")," класс " ":" А ", "оценка": 10}, {"дата": ISODate ("2014-06-26T00: 00: 00Z"), "оценка": "А", "оценка": 12}], "имя": "Бахтер афганский" Халяль Кабаб "," restaurant_id ":" 50010813 "} {"_id": ObjectId ("55c3043ab165fa6355ec5d61"), "address": {"building": "2300", "corre": [-73.8786113, 40.8502883], "street": "Южный бульвар", "почтовый индекс": " 10460 "}," городской округ ":" Бронкс "," кухня ":" Африканская "," классы ": [{" дата ": ISODate (" 2014-05-21T00: 00: 00Z ")," класс ":" Оценка ": 8}, {" дата ": ISODate (" 2013-06-01T00: 00: 00Z ")," оценка ":" A "," оценка ": 6}, {" дата ": ISODate (" 2012- 06-12T00: 00: 00Z ")," оценка ":" A "," оценка ": 0}, {" дата ": ISODate (" 2011-06-08T00: 00: 00Z ")," оценка ":" A "," score ": 0}]," name ":" African Terrace "," restaurant_id ":" 40368021 "} {"_id": ObjectId ("55c3043ab165fa6355ec667a"), "address": {"building": "195", "corre": [-73.9717845, 40.6897199], "street": "Avenue Dekalb", "zipcode": " 11205 "}," городской округ ":" Бруклин "," кухня ":" Африканская "," классы ": [{" дата ": ISODate (" 2014-08-18T00: 00: 00Z ")," класс ":" Оценка" : 7}, {"дата": ISODate ("2014-01-13T00: 00: 00Z"), "оценка": "B", "оценка": 19}, {"дата": ISODate ("2012-12- 19T00: 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" дата ": ISODate (" 2012-08-01T00: 00: 00Z ")," оценка ":" A " , "оценка": 10}, {"дата": ISODate ("2012-03-12T00: 00: 00Z"), "оценка": "А", "оценка": 1 2}, {"date": ISODate ("2011-11-01T00: 00: 00Z"), "grade": "A", "Score": 10}], "name": "Madiba", "restaurant_id" : "40684161"} {"_id": ObjectId ("55c3043ab165fa6355ec68f0"), "address": {"building": "14612", "corre": [-73.8057078, 40.6948408], "street": "Avenue Liberty", "zipcode": " 11435 "}," городской округ ":" Королевы "," кухня ":" Африканская "," классы ": [{" дата ": ISODate (" 2014-04-16T00: 00: 00Z ")," класс ":" Оценка" : 4}, {"дата": ISODate ("2013-09-16T00: 00: 00Z"), "оценка": "A", "оценка": 2}, {"дата": ISODate ("2012-08 -23T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-02-21T00: 00: 00Z ")," оценка ":" A "," оценка ": 11}, {" дата ": ISODate (" 2011-06-30T00: 00: 00Z ")," оценка ":" B "," оценка ": 19}], "name": "Africana Restaurant", "restaurant_id": "40798504"} {"_id": ObjectId ("55c3043ab165fa6355ec69a8"), "address": {"building": "2364", "corre": [-73.9025083, 40.8603246], "street": "Проспект Джерома", "почтовый индекс": " 10468 "}," городской округ ":" Бронкс "," кухня ":" Африканская "," классы ": [{" дата ": ISODate (" 2014-04-22T00: 00: 00Z ")," класс ":" А "," оценка ": 1 2}, {"дата": ISODate ("2013-10-22T00: 00: 00Z"), "оценка": "A", "оценка": 9}, {"дата": ISODate ("2012-09- 18T00: 00: 00Z ")," оценка ":" A "," оценка ": 11}, {" дата ": ISODate (" 2011-10-04T00: 00: 00Z ")," оценка ":" A " , "оценка": 13}, {"дата": ISODate ("2011-05-26T00: 00: 00Z"), "оценка": "А", "оценка": 11 }], "name": "Ebe Ye Yie African Restaurant", "restaurant_id": "40832718"} {"_id": ObjectId ("55c3043ab165fa6355ec6bbb"), "address": {"building": "2535", "corre": [-73.9277649, 40.81103], "street": "3 Avenue", "zipcode": " 10451 "}," городской округ ":" Бронкс "," кухня ":" Африканская "," классы ": [{" дата ": ISODate (" 2014-06-07T00: 00: 00Z ")," класс ":" А "," оценка ": 12}, { «дата»: ISODate («2013-05-03T00: 00: 00Z»), «оценка»: «A», «оценка»: 12}, {«дата»: ISODate («2012-08-10T00: 00: 00Z ")," оценка ":" P "," оценка ": 3}, {" дата ": ISODate (" 2012-04-14T00: 00: 00Z ")," оценка ":" A "," оценка " : 11}, {"дата": ISODate ("2011-10-15T00: 00: 00Z"), "оценка": "A", "оценка": 10}], " name ":" African Maquis La Plantation "," restaurant_id ":" 40923014 "} {"_id": ObjectId ("55c3043ab165fa6355ec6edd"), "address": {"building": "1150", "corre": [-73.91670189999999, 40.8323228], "street": "Sherman Avenue", "zipcode": " 10456 "}," городской округ ":" Бронкс "," кухня ":" Африканская "," классы ": [{" дата ": ISODate (" 2014-12-23T00: 00: 00Z ")," класс ":" A, "sc" руда ": 12}, {" дата ": ISODate (" 2013-12-24T00: 00: 00Z ")," оценка ":" A "," оценка ": 3}, {" дата ": ISODate (" 2012 -12-07T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2012-05-15T00: 00: 00Z ")," оценка ": "B", "score": 14}], "name": "Ресторан Халяль Кафе", "restaurant_id": "4 1012979 "}
Получить данные о ресторанах здесь
Поведение
Когда для формы запроса существует индексный фильтр, MongoDB игнорирует подсказку ().
Вы не можете использовать hint (), если запрос содержит выражение запроса $ text.
Предыдущий: cursor.hasNext () метод
Далее: метод cursor.itcount ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code