2013-10-15 2 views
0

Я новичок mongoDB, и мне интересно, что является полезностью метода findOne. Я имею в виду, я могу увидеть утилиту для атрибута justOne для метода remove, который позволяет избежать опасных запросов, которые могут удалить много ваших данных, но что такое утилита findOne?MongoDB db.collection.findOne() Утилита

Если кто-то с плохим намерением вводит запрос через мой метод find, он может видеть все данные? Не мог ли он сделать то же самое через метод findOne, запустив много запросов?

Зачем мне нужно получить только документ из запроса, который соответствует большему количеству документов? и почему мне нужно получить первую из них в дисковом порядке? Если мне нужен точный документ, я запрошу его однозначно.

I извинения за нелепости я, наверное, написал, но им пытаются понять

+0

Обычно вы используете 'findOne' с ИД объекта, который необходимо преобразовать в объект BSON. Я использую его, чтобы найти пользователя. – tymeJV

+0

мммм и зачем мне конвертировать _id в объект BSON? цель безопасности? если мне нужно запросить конкретного пользователя, я запрошу его по имени пользователя, если я его знаю, или Object_id – lese

ответ

2

С одной стороны, это удобный ярлык для find({ ... }).limit(1).pretty()[0] в Монго оболочки.

Обратите внимание на [0]: findOne возвращает документа, а не курсора.

Зачем использовать его? Предположим, вы хотите найти документ по _id (может иметь только один результат), это избавит вас от небольшого набора текста.

Зачем мне нужно получить только документ из запроса, который соответствует большему количеству документов? и почему мне нужно получить первую из них в дисковом порядке? если мне нужен точный документ, я обращаюсь к нему однозначно.

Ну, если вы знаете, что ищете. Предположим, вы хотите получить самую последнюю ошибку из журнала, затем sth. как findOne({"severity" : "error"}) будет именно то, что вам нужно.

Смежные вопросы