Запознайте се със заявките и операциите на MongoDB с помощта на това удобно ръководство.

MongoDB е една от най-желаните и възхищавани NoSQL бази данни за професионално развитие. Неговата гъвкавост, мащабируемост и способност да обработва големи обеми от данни го правят топ избор за съвременни приложения. Ако искате да овладеете обичайните заявки и операции на MongoDB, вие сте на правилното място.

Независимо дали търсите ефективно извличане и манипулиране на данни, внедряване на надеждни модели на данни или изграждане на отзивчив приложения, придобиването на задълбочено разбиране на често срещаните заявки и операции на MongoDB несъмнено ще подобри вашите умения.

1. Създавайте или превключвайте бази данни

Създаването на база данни локално чрез MongoDB Shell е лесно, особено ако сте настроили отдалечен клъстер. Можете да създадете нова база данни в MongoDB с използване команда:

use db_name

Докато горната команда създава нова база данни, можете да я използвате, за да превключите към съществуваща база данни, без да създавате нова от нулата.

instagram viewer

2. Пуснете база данни

Първо превключете към базата данни, която искате да премахнете, като използвате използване команда, както беше направено преди. След това пуснете базата данни с помощта на dropDatabase() команда:

use db_name
db.dropDatabase()

3. Създаване на колекция

За да създадете колекция, превключете към целевата база данни. Използвай createCollection() ключова дума за създаване на нова колекция MongoDB:

db.createCollection("collection_name")

Сменете колекция_име с избраното от вас име на колекция.

4. Вмъкване на документ в колекция

Докато изпращате данни към колекция, можете да вмъкнете един документ или масив от документи.

За да вмъкнете един документ:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Можете също да използвате горния метод, за да вмъкнете масив от документи с един идентификатор:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

За да вмъкнете много документи наведнъж, като всеки има отделни идентификатори, използвайте вмъкниМного ключова дума:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Вземете всички документи от колекция

Можете да правите заявки за всички документи от колекция, като използвате намирам() ключова дума:

db.collection_name.find()

Горното връща всички документи в указаната колекция:

Можете също така да ограничите върнатите данни до конкретен брой. Например, можете да използвате следната команда, за да получите само първите два документа:

db.collection_name.find().limit(2)

6. Филтриране на документи в колекция

Има много начини за филтриране на документи в MongoDB. Помислете например за следните данни:

Ако правите заявка само за конкретно поле в документ, използвайте намирам метод:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Горното връща всички документи, където стойността на Харесвания е Wordle. Той извежда само имената и игнорира идентификатора на документа.

Можете също да филтрирате колекция по цифров фактор. Да кажем, че искате да получите имената на всички потребители над 21 години, използвайте $gt оператор:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Резултатът изглежда така:

Опитайте да замените намирам с findOne да видя какво ще стане. Има обаче много други филтриращи ключови думи:

  • $lt: Всички стойности са по-малки от зададената.
  • $gte: Стойности, равни или по-големи от зададената.
  • $lte: Стойности, които са по-малки или равни на дефинираната.
  • $екв: Получава всички стойности, равни на указаната.
  • $ne: Всички стойности не са равни на посочената.
  • $in: Използвайте това, когато правите заявки въз основа на масив. Получава всички стойности, съответстващи на някой от елементите в масива. The $nin ключовата дума прави обратното.

7. Сортиране на заявки

Сортирането помага за подреждането на заявката в определен ред. Можете да сортирате в низходящ или възходящ ред. Имайте предвид, че сортирането изисква цифрова препратка.

Например, за сортиране във възходящ ред:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

За да сортирате горната заявка в низходящ ред, заменете "1" с "-1."

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Актуализиране на документ

Актуализациите на MongoDB изискват атомарни оператори, за да укажете как искате да се извърши актуализацията. Ето списък с често използвани атомарни оператори, които можете да сдвоите със заявка за актуализиране:

  • $set: Добавяне на ново поле или промяна на съществуващо поле.
  • $натискане: Вмъкване на нов елемент в масив. Сдвоете го с $ всеки оператор за вмъкване на много елементи наведнъж.
  • $дърпане: Премахване на елемент от масив. Използвайте го с $in за премахване на много елементи наведнъж.
  • $незададено: Премахване на поле от документ.

За да актуализирате документ и да добавите ново поле, например:

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Горното актуализира посочения документ, както е показано:

Премахването на полето за имейл е лесно с $незададено оператор:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Разгледайте следните примерни данни:

Можете да вмъкнете елемент в съществуващия елементи поле за масив с помощта на $натискане оператор:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Ето изхода:

Използвай $ всеки оператор за вмъкване на много елементи наведнъж:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Ето изхода:

Както споменахме, $дърпане оператор премахва елемент от масив:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Актуализираните данни изглеждат така:

Включете $in ключова дума за премахване на много елементи в масив наведнъж:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Изтриване на документ или поле

The deleteOne или deleteMany ключова дума изхвърля документ от колекция. Използвайте deleteOne за премахване на документ въз основа на определено поле:

db.collection_name.deleteOne({"Name":"IDNoble"})

Ако искате да изтриете много документи с общи ключове, използвайте deleteMany вместо. Заявката по-долу изтрива всички документи, съдържащи Шах като техен Харесвания.

db.collection.deleteMany({"Likes":"Chess"})

10. Операция за индексиране

Индексирането подобрява производителността на заявките чрез рационализиране на броя документи, които MongoDB трябва да сканира. Често е най-добре да създадете индекс на полета, които задавате по-често.

Индексирането на MongoDB е подобно на начина, по който вие използвайте индекси за оптимизиране на SQL заявки. Например, за да създадете възходящ индекс на Име поле:

db.collection.createIndex({"Name":1})

За да изброите вашите индекси:

db.collection.getIndexes()

Горното е само преамбюл. Има няколко други метода за създаване на индекс в MongoDB.

11. Агрегиране

Конвейерът за агрегиране, подобрена версия на MapReduce, ви позволява да изпълнявате и съхранявате сложни изчисления от MongoDB. За разлика от MapReduce, който изисква отделно писане на картата и функциите за намаляване JavaScript функции, агрегирането е лесно и използва само вградени методи на MongoDB.

Помислете например за следните данни за продажбите:

Използвайки агрегацията на MongoDB, можете да изчислите и съхраните общия брой продадени продукти за всяка категория, както следва:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

Горната заявка връща следното:

Овладейте MongoDB заявки

MongoDB предлага много методи за заявки, включително функции за подобряване на производителността на заявките. Независимо от вашия език за програмиране, горните структури на заявки са елементарни за взаимодействие с база данни MongoDB.

Възможно е обаче да има някои несъответствия в основния синтаксис. Например, докато някои езици за програмиране като Python разпознават случаите на змия, други, включително JavaScript, използват случая на камила. Уверете се, че проучвате какво работи за избраната от вас технология.