当前位置:网站首页>Mongodb installation and basic operation
Mongodb installation and basic operation
2022-07-06 08:49:00 【look-word】
MongoDB Installation
Use docker install
Download mirroring :
docker pull mongo:4.4.8( recommend , Download the specified version )
docker pull mongo:latest ( Download the latest version by default )

Look at the mirror image :
docker images
- You can see mongo It has been downloaded

Start the mirror :
docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db mongo:4.4.8
- -d Background operation
- –restart=always docker Container start up mongo And start The same is true of shutdown
- -name Specify the name of the container
- -v Bound with a file on the disk
Into the container :
docker exec -it mymongo /bin/bash
Enter into mongo The client of
mongo

MongoDB Concept of analytical
No matter what database we learn we should learn the basic concepts, right , stay mongodb The basic concept is documentation 、 aggregate 、 database , Let's introduce in detail , The following table will help you understand more easily Mongo Some of the concepts in :
| SQL The term / Concept | MongoDB The term / Concept | explain / explain |
|---|---|---|
| database | database | database |
| table | collection | Database table / aggregate |
| row | document | Data record row / file |
| column | field | Data field / Domain |
| index | index | Indexes |
| table joins | Table joins ,MongoDB I won't support it | |
| primary key | primary key | Primary key ,MongoDB Automatically put _id Field sets the primary key |
MongoDB Common operations
(1)Help Check the command prompt
db.help();
(2) Switch / Create database
use test
If the database doesn't exist , Then create the database , Otherwise switch to the specified database
(3) Query all databases
show dbs;
(4) Delete the currently used database
db.dropDatabase();
(5) View currently used databases
db.getName();
(6) Show the current db state
db.stats();
(7) At present db edition
db.version();
(8) View the current db Link machine address
db.getMongo();
Commonly used instructions :
Let's create a database first
use test
1 INSERT( newly added )
Insert into User Collection
db.User.save({name:‘zhangsan’,age:21,sex:true})
Inquire about User All documents in the collection
db.User.find()

2 Remove( Delete )
remove() Used to delete single or all documents , The deleted document cannot be recovered
- Delete all :db.User.remove({})
- Appoint id Delete :db.User.remove(id)
- Specify conditions to delete :db.User.remove({‘name’:‘zhangsan’})
3 UPDATE ( modify )
- first { } Is the condition
- The second brace Is the content that needs to be modified
** Example :**db.User.update({name:“lucy”}, {$set:{age:100, sex:0}})

Update() There are a few parameters to note .
db.collection.update(criteria, objNew, upsert, mult)
criteria: Conditional expressions that need to be updated
objNew: Update expression
upsert: Such as FI The label record does not exist , Whether to insert a new document .
multi: Whether to update multiple documents .
4 QUERY( Inquire about )
4.1 WHERE
stay mongo in How do we use conditional queries ?
** grammar :**db.User.find ({“filed”, value })
Example : db.User.find({name:“ Zhang San ”})
convert to sql : select * form User where name = ‘ Zhang San ’
[ Failed to transfer the external chain picture , The origin station may have anti-theft chain mechanism , It is suggested to save the pictures and upload them directly (img-VzK8wRwP-1656833727793)(https://img2022.cnblogs.com/blog/2233272/202207/2233272-20220703110249742-987656105.png)]
4.2 FIELDS
In normal development , You only need to query some fields in a set ? So how can we achieve such a business ?
- first {} Express What conditions to query It's up there where
- the second {} Express To be found field The value is 1
** grammar :**db.User.find ( { } , { “filed” , value })
** Example :**db.User.find( { name : “ Zhang San ” } , { ‘name’ : 1 } )
convert to sql: select name from User where name = ‘ Zhang San ’

5 SORT
stay MongoDB Use in sort() Method to sort the data ,sort() Method can be used to specify the sorting field by parameter , And use 1 and -1 To specify how to sort , among 1 Arrange... In ascending order , and -1 It's for descending order .
** Example :**db.User.find().sort({‘age’:1})
The conversion SQL :select * from User order by age desc

6 Intercept
stay MongoDB Use in limit() Method to read a specified amount of data ,skip() Method indicates the line from which to read
Example : db.User.find().skip(1).limit(2)
Corresponding SQL: select * from User skip 1 limit 2
All the data in the set : There are two of them

The first line starts reading Read to the end of the second line

7 in( contain )
Example : db.User.find({age:{$in:[21,26,32]}})
** The conversion SQL:**select * from User where age in (21, 26, 32)
8 COUNT( The statistical number of rows )
Example : select count(*) from User where age >20
The conversion SQL: db.User.find({age:{$gt:20}}).count()
9 OR ( perhaps )
age yes 20 perhaps 30 All meet the conditions Be similar to |
Example : select * from User where age = 21 or age = 30
The conversion SQL: db.User.find({$or:[{age:21}, {age:30}]})

10 aggregate( polymerization )
MongoDB Middle polymerization (aggregate) It's mainly used to process data ( Such as the statistical average , Make a peace, etc ), And return the calculated data result . It's kind of similar sql Statement count(*)
Insert test data
db.article.insert({title: ‘MongoDB Overview’,description: ‘MongoDB is no sql database’,by_user: ‘runoob.com’,url: ‘http://www.runoob.com’,tags: [‘mongodb’, ‘database’, ‘NoSQL’],likes: 100})
db.article.insert({title: ‘NoSQL Overview’,description: ‘No sql database is very fast’,by_user: ‘runoob.com’,url: ‘http://www.runoob.com’,tags: [‘mongodb’, ‘database’, ‘NoSQL’],likes: 10})
db.article.insert({title: ‘Neo4j Overview’,description: ‘Neo4j is no sql database’,by_user: ‘Neo4j’,url: ‘http://www.neo4j.com’,tags: [‘neo4j’, ‘database’, ‘NoSQL’],likes: 750})
Common aggregate expressions
| expression | describe | Example |
|---|---|---|
| $sum | Calculate the sum | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { s u m : " sum : " sum:"likes"}}}]) |
| $avg | Average | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { a v g : " avg : " avg:"likes"}}}]) |
| $min | Get the minimum value of all documents in the collection . | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { m i n : " min : " min:"likes"}}}]) |
| $max | Get the maximum value of all documents in the collection . | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { m a x : " max : " max:"likes"}}}]) |
| $push | Insert values into an array in the result document . | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", url : { p u s h : " push: " push:"url"}}}]) |
| $addToSet | Insert values into an array in the result document , But don't create copies . | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", url : { a d d T o S e t : " addToSet : " addToSet:"url"}}}]) |
| $first | Get the first document data according to the sorting of resource documents | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", first_url : { f i r s t : " first : " first:"url"}}}]) |
| $last | Get the last document data according to the sorting of resource documents | db.mycol.aggregate([{ KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", last_url : { l a s t : " last : " last:"url"}}}]) |
11 Indexes
Indexing can usually be greatly improved
Query efficiency, If there is no index ,MongoDB When reading data, you must scanCollectionOfEveryFile and select those records that meet the query conditions . This scanFull setThe query efficiency isVery lowOf , Especially when dealing with large amounts of data , Queries can take tens of seconds or even minutes , The performance of this website isVery deadlyOf .IndexesIs a special data structure , The index is stored in a collection of data that is easy to read through , An index is an index of a database tableOne or more columnsA structure that sorts the values of .
db.User.createIndex({“name”:1})
In the syntax **name**** The value is the index field that you want to create ,
1** Creates an index in ascending order for the specified , If you want to create the index in descending order specify as -1 that will do
边栏推荐
- Problems in loading and saving pytorch trained models
- R language ggplot2 visualization: place the title of the visualization image in the upper left corner of the image (customize Title position in top left of ggplot2 graph)
- win10系统中的截图,win+prtSc保存位置
- Cesium draw points, lines, and faces
- Restful API design specification
- LeetCode:498. 对角线遍历
- Crash problem of Chrome browser
- JS native implementation shuttle box
- Function coritization
- LeetCode:剑指 Offer 42. 连续子数组的最大和
猜你喜欢

Esp8266-rtos IOT development

Image,cv2读取图片的numpy数组的转换和尺寸resize变化

swagger设置字段required必填

win10系统中的截图,win+prtSc保存位置
![[MySQL] limit implements paging](/img/94/2e84a3878e10636460aa0fe0adef67.jpg)
[MySQL] limit implements paging

Restful API design specification

View computer devices in LAN

Deep anatomy of C language -- C language keywords

【剑指offer】序列化二叉树

Indentation of tabs and spaces when writing programs for sublime text
随机推荐
Indentation of tabs and spaces when writing programs for sublime text
LeetCode:673. 最长递增子序列的个数
Marathon envs project environment configuration (strengthen learning and imitate reference actions)
【ROS】usb_ Cam camera calibration
Image, CV2 read the conversion and size resize change of numpy array of pictures
Double pointeur en langage C - - modèle classique
LeetCode:236. 二叉树的最近公共祖先
Mobile phones and computers on the same LAN access each other, IIS settings
Philosophical enlightenment from single point to distributed
Deep anatomy of C language -- C language keywords
@Jsonbackreference and @jsonmanagedreference (solve infinite recursion caused by bidirectional references in objects)
@JsonBackReference和@JsonManagedReference(解决对象中存在双向引用导致的无限递归)
What are the common processes of software stress testing? Professional software test reports issued by companies to share
Excellent software testers have these abilities
JVM quick start
移位运算符
Variable length parameter
LeetCode:剑指 Offer 42. 连续子数组的最大和
超高效!Swagger-Yapi的秘密
Current situation and trend of character animation