MongoDB
Π’Π΅ΠΎΡΠΈΡ
MongoDB - ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ JSON ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Ρ ΡΠ°Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΆΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² JSON-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ
Π§ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Mongo DB?
ΠΠΎΠ½Π½Π΅ΠΊΡΠΈΠΌΡΡ ΠΊ ΠΠ
Π ΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΠ
Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅
Π ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Ρ Π½Π°Ρ ΠΠ
show databases
// ΠΈΠ»ΠΈ
show dbs
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ use ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ ΠΊΠ°ΠΊΡΡ ΡΡΡΠ½ΠΎΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Π΅Ρ Π½Π΅Ρ, ΡΠΎ ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π°
use mongo // ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ mongo
db.createCollection(βΠΈΠΌΡ_ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈβ) - ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π²Π½ΡΡΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΠ
db.createCollection("users") // ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ users Π² ΡΡΡΠ½ΠΎΡΡΠΈ mongo
Π£Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΠ
Π Π²ΠΎΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ
ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΠ
show collection
Π£Π΄Π°Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
db.dropDatabase()
insert - ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ
insert - ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π±Π°Π·Ρ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠΈΡΡΡ Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ users
db.users.insert({
Β Β name: "Valery",
Β Β age: 19
})
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π°ΠΌ, ΡΡΠΎ insert ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΡΠΎΠΈΡ - ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»Π΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
'DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
db.users.insertMany([
Β Β { name: "Valery", age: 19},
Β Β { name: "Rita", age: 24},
Β Β { name: "Galina", age: 34},
Β Β { name: "Varya", age: 32},
Β Β { name: "Masya", age: 25}
])
Π ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΠΌ, ΡΡΠΎ ΠΊ 5ΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌ Ρ Π½Π°Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΅ΡΡ ΠΈ id
find - ΠΠΎΠΈΡΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
ΠΠ΅ΡΠΎΠ΄ find Π²ΡΠ²Π΅Π΄Π΅Ρ Π²Π΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ users
db.users.find()
find - ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ
Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄ find ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΏΠΈΡΠ°ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π»ΠΎΠΆΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ Π½Π°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ:
db.users.find({age: 25, name: 'Masya'})
{
_id: ObjectId("6324b047183b76a3589dcc11"),
name: 'Masya',
age: 25
}
Π‘Π²ΠΎΠΉΡΡΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ
db.users.find({age: 19})
{
_id: ObjectId("6324aec2183b76a3589dcc0c"),
name: 'Valery', age: 19
}
{
_id: ObjectId("6324b047183b76a3589dcc0d"),
name: 'Valery', age: 19
}
find - $or Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΠΠ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°ΠΊ ΠΆΠ΅ Π²Π½ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· {$or: [{ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅}, {Π²ΡΠΎΡΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅}]} ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
db.users.find({$or:[{age: 25}, {age: 32}, {name: 'Rita'}]})
{
_id: ObjectId("6324b047183b76a3589dcc0e"),
name: 'Rita', age: 24
}
{
_id: ObjectId("6324b047183b76a3589dcc10"),
name: 'Varya', age: 32
}
{
_id: ObjectId("6324b047183b76a3589dcc11"),
name: 'Masya', age: 25
}
find - gt, gte, $ne, ΠΌΠ΅Π½ΡΡΠ΅, Π±ΠΎΠ»ΡΡΠ΅, Π»ΠΈΠ±ΠΎ ΡΠ°Π²Π½ΠΎ, Π½Π΅ ΡΠ°Π²Π½ΠΎ
lte - less then or equal - ΠΈΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ = Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ gte - greater or equal - ΠΈΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ = Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ $ne - not equal - ΠΈΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π²Π½ΡΠ΅ Π·Π°Π΄Π°Π½Π½ΡΠΌ
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ ΠΌΠ΅Π½ΡΡΠ΅ 30:
db.users.find({age: {$lt: 30}})
{ _id: ObjectId("6324aec2183b76a3589dcc0c"), name: 'Valery', age: 19 }
{ _id: ObjectId("6324b047183b76a3589dcc0d"), name: 'Valery', age: 19 }
{ _id: ObjectId("6324b047183b76a3589dcc0e"), name: 'Rita', age: 24 }
{ _id: ObjectId("6324b047183b76a3589dcc11"), name: 'Masya', age: 25 }
find.sort- Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
ΠΠ΅ΡΠΎΠ΄ sort(), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ find, ΡΠΎΡΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΡΠ»Π° 1 (Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΠ΅) ΠΈΠ»ΠΈ -1 (ΡΠ±ΡΠ²Π°Π½ΠΈΠ΅)
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ²Π΅Π΄ΡΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ
db.users.find().sort({age: 1})
Π ΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ
db.users.find().sort({age: -1})
find.limit - ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²
Π€ΡΠ½ΠΊΡΠΈΡ limit()
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ
db.users.find().limit(2)
{ _id: ObjectId("6324aec2183b76a3589dcc0c"), name: 'Valery', age: 19 }
{ _id: ObjectId("6324b047183b76a3589dcc0d"), name: 'Valery', age: 19 }
Π’Π°ΠΊ ΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ findOne({ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ_ΠΎΠ±ΡΠ΅ΠΊΡΠ°}), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ
db.users.findOne({_id: ObjectId("6324b047183b76a3589dcc0e")})
{
_id: ObjectId("6324b047183b76a3589dcc0e"),
name: 'Rita', age: 24
}
Π£ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ distinct() Π²Π΅ΡΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. Π Π±Π°Π·Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π΄Π²Π° ΠΏΠΎΠ»Ρ Ρ βValeryβ. ΠΠΈΡΡΠΈΠ½ΠΊΡ Π²ΡΠ²Π΅Π΄Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ
db.users.distinct('name')
[ 'Galina', 'Masya', 'Rita', 'Valery', 'Varya' ]
Π’Π°ΠΊ ΠΆΠ΅ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΉΡΠΈ ΠΎΠ΄Π½Ρ Π·Π°ΠΏΠΈΡΡ, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ/ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ/ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Ρ
update - $set ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ update() ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ updateOne() ΠΈΠ»ΠΈ updateMany()
db.users.update(
Β Β {name: "Valery"}, // ΠΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ
Β Β {
Β Β Β Β $set: { // ΠΠ°ΠΌΠ΅Π½Π°
Β Β Β Β Β Β name: "Ilon", // ΠΠΌΠ΅Π½ΠΈ
Β Β Β Β Β Β age: 15 // ΠΠΎΠ·ΡΠ°ΡΡΠ°
Β Β Β Β }
Β Β }
)
ΠΡΠ»ΠΎ Π΄Π²Π΅ Π·Π°ΠΏΠΈΡΠΈ Ρ βValeryβ - ΠΎΠ΄Π½Π° Π·Π°ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ Π½Π° Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π²ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
{
_id: ObjectId("6324aec2183b76a3589dcc0c"),
name: 'Ilon', age: 15
}
{
_id: ObjectId("6324b047183b76a3589dcc0d"),
name: 'Valery', age: 19
}
update - $rename ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
ΠΠΎΠ΄ΠΈΡΠΈΠΊΡΠΎΡ $rename ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠ»ΡΡΠΈ
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ»ΡΡ name Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² fullname
db.users.updateMany(
Β Β {},
Β Β {
Β Β Β Β $rename: {
Β Β Β Β Β Β name: "fullname"
Β Β Β Β }
Β Β }
)
{
_id: ObjectId("6324aec2183b76a3589dcc0c"),
age: 15,
fullname: 'Ilon'
}
delete - Π£Π΄Π°Π»ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΈ deleteOne() ΠΈ deleteMany() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΠ»Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡΡ ΠΏΠΎΠ»Π΅ βIlonβ
db.users.deleteOne({age: 15})
BulkWrite - ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΠ΅ΡΠΎΠ΄ bulkWrite([{}])
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΠΈ Π·Π°ΠΏΡΠΎΡΡ (Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΠ΄Π°Π»ΠΈΡΡ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅)
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ
db.users.bulkWrite([
Β Β {
Β Β Β Β insertOne: {
Β Β Β Β Β Β document: {name: 'Nastya', age: 18}
Β Β Β Β }
Β Β },
Β Β {
Β Β Β Β deleteOne: {
Β Β Β Β Β Β filter: {fullname: 'Rita'}
Β Β Β Β }
Β Β }
])
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² Π»ΠΎΠ³Π΅ (ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ), ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Π’ΠΈΠΏΡ ΡΠ²ΡΠ·Π΅ΠΉ
1 ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ
ΠΠ°ΡΡΠΈΠ² posts Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
db.users.update(
Β Β {fullname: 'Masya'},
Β Β {
Β Β Β Β $set: {
Β Β Β Β Β Β posts: [
Β Β Β Β Β Β Β Β {title: 'JS', text: 'JS top'},
Β Β Β Β Β Β Β Β {title: 'mongo', text: 'mongo db'}
Β Β Β Β Β Β ]
Β Β Β Β }
Β Β }
)
Π§Π΅ΡΠ΅Π· findOne() ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π΅ΡΠ»ΠΈ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ Π½Π°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ)
db.users.findOne(
Β Β {fullname: 'Masya'},
Β Β {posts: 1}
)
Π’ΡΡ ΠΌΡ ΠΈΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ posts, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ title. ΠΡΠΎΠ²Π΅ΡΠ½ΡΡΡ ΡΠ°ΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· $elemMatch
db.users.find(
Β Β {
Β Β Β Β posts: {
Β Β Β Β Β Β $elemMatch: {
Β Β Β Β Β Β Β Β title: "JS"
Β Β Β Β Β Β }
Β Β Β Β }
Β Β }
)
Π’Π°ΠΊ ΠΆΠ΅ Π΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ $exists, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ posts
db.users.find({posts: {$exists: true}})
Π Π°Π±ΠΎΡΠ° Ρ MongoDB ΠΈΠ· Node
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅:
npm install -y // ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
npm install mongodb // ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ mongo Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π²Π·ΡΡΡ Ρ Π½Π΅Π³ΠΎ ΡΡΡΠ»ΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ mongodb atlas). ΠΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΠΎΠ½Π³ΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡ. Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ· ΠΠΎΠ½Π³ΠΎΠΠ»ΠΈΠ΅Π½ΡΠ°. Π Π΄Π°Π»Π΅Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΌ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π² MongoShell