From beeb68c40ff7427536e25e6f10c6b75b94dc81f7 Mon Sep 17 00:00:00 2001 From: StNicolay Date: Sun, 21 Jul 2024 08:58:27 +0300 Subject: [PATCH] Mongo 14.07.2024 --- Mongo/Mongo.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Mongo/Mongo.md b/Mongo/Mongo.md index f62e2eb..0f6c1ea 100644 --- a/Mongo/Mongo.md +++ b/Mongo/Mongo.md @@ -45,6 +45,19 @@ db.users.find({name: {$type: "string"}}) db.users.find({name: {$regex: "om$"}}) db.users.replaceOne({name: "Tom"}, {name: "Bob", age: 2}, {upsert: true}) //Полностью заменяет документ. Если upsert true, то документ будет создан, если не найдёт db.users.updateOne({name: "Tom"}, {$set: {salary: 300}, $inc: {age: 2}}) +db.users.updateOne({name: "Tom"}, {$unset: {salary: 1}}) // Установить salary +db.users.updateOne({name: "Tom"}, {$push: {languages: "rus"}}) +db.users.updateOne({name: "Tom"}, {$push: {languages: {$each: ["lang1", "lang2"]}}}) +db.users.updateOne({name: "Tom"}, {$push: {languages: {$each: ["lang3", "lang4"], $position: 1, $slice: 5}}}) // Вставит с первого индекса и оставит только 5 элементов +db.users.updateOne({name: "Tom"}, {$addToSet: {languages: "rus"}}) // Push без дупликатов +db.users.updateOne({name: "Tom"}, {$pop: {languages: 1}}) // Удалить последний +db.users.updateOne({name: "Tom"}, {$pop: {languages: -1}}) // Удалить первый +db.users.updateOne({name: "Tom"}, {$pull: {languages: "eng"}}) // Удалить eng из языков +db.users.updateOne({name: "Tom"}, {$pullAll: {languages: ["eng", "rus"]}}) +db.users.deleteOne({name: "Bob"}) +db.users.deleteMany({name: /B\w+/i}) +db.users.drop() +db.dropDatabase() ``` ## Курсоры @@ -81,3 +94,12 @@ cursor.limit(5);null; // Поставить лимит без вывода да * $all - определяет набор значений, все из которых должны быть в массиве * $size - орпделяет кол-во элементов * $elemMatch - определяет условие, которым должны соответсвовать элементы в массиве + +## Связывание документов + +```js +google = db.companies.insertOne({name: "google", year: 1998}) +sam = ({name: "Sam", age: 25, company: {$ref: "companies", $id: google.insertedId}}) +db.users.insertOne(sam) +db.companies.findOne({_id: sam.company.$id}) +```