В этой главе мы узнаем, как запрашивать документ из коллекции MongoDB.
Метод find ()
Чтобы запросить данные из коллекции MongoDB, вам нужно использовать метод find () MongoDB.
Синтаксис
Основной синтаксис метода find () следующий:
>db.COLLECTION_NAME.find()
Метод find () будет отображать все документы неструктурированным способом.
Метод Pretty ()
Чтобы отобразить результаты в отформатированном виде, вы можете использовать метод pretty () .
Синтаксис
>db.mycol.find().pretty()
пример
>db.mycol.find().pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
Помимо метода find (), существует метод findOne () , который возвращает только один документ.
СУРБД, где пункт эквиваленты в MongoDB
Чтобы запросить документ на основе какого-либо условия, вы можете использовать следующие операции.
операция | Синтаксис | пример | Эквивалент RDBMS |
---|---|---|---|
равенство | {<Ключ>: <значение>} | db.mycol.find ({«by»: «tutorials point»}). pretty () | где by = ‘tutorials point’ |
Меньше, чем | {<Ключ>: {$ л: <значение>}} | db.mycol.find ({ «любит»: {$ л: 50}}). довольно () | где любит <50 |
Меньше чем равно | {<Ключ>: {$ Г: <значение>}} | db.mycol.find ({ «любит»: {$ Г: 50}}). довольно () | где любит <= 50 |
Лучше чем | {<Ключ>: {$ Gt: <значение>}} | db.mycol.find ({ «любит»: {$ Gt: 50}}). довольно () | где нравится> 50 |
Больше чем равно | {<Ключ>: {$ GTE: <значение>}} | db.mycol.find ({ «любит»: {$ GTE: 50}}). довольно () | где любит> = 50 |
Не равно | {<Ключ>: {$ п: <значение>}} | db.mycol.find ({ «любит»: {$ п: 50}}). довольно () | где любит! = 50 |
И в MongoDB
Синтаксис
В методе find () , если вы передаете несколько ключей, разделяя их символом ‘,’, MongoDB обрабатывает его как условие AND . Ниже приведен основной синтаксис AND —
>db.mycol.find( { $and: [ {key1: value1}, {key2:value2} ] } ).pretty()
пример
В следующем примере будут показаны все учебные пособия, написанные «tutorials point» и имеющие название «Обзор MongoDB».
>db.mycol.find({$and:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" }
Для приведенного выше примера эквивалентным условием where будет ‘where by =’ tutorials point ‘И title =’ MongoDB Overview » . Вы можете передать любое количество пар ключ-значение в предложении find.
ИЛИ в MongoDB
Синтаксис
Для запроса документов на основе условия ИЛИ вам нужно использовать $ или ключевое слово. Ниже приведен основной синтаксис ИЛИ —
>db.mycol.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty()
пример
В следующем примере будут показаны все учебные пособия, написанные «точкой обучения» или имеющие название «Обзор MongoDB».
>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
Использование AND и OR вместе
пример
В следующем примере будут показаны документы, число лайков которых больше 10, а заголовок — «Обзор MongoDB» или «Учебное пособие». Эквивалентный SQL, где предложение ‘где любит> 10 AND (by =’ tutorials point ‘ИЛИ title =’ MongoDB Overview ‘)’