当前位置:网站首页>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
边栏推荐
- Image,cv2读取图片的numpy数组的转换和尺寸resize变化
- 【嵌入式】使用JLINK RTT打印log
- 查看局域网中电脑设备
- 电脑清理,删除的系统文件
- Analysis of the source code of cocos2d-x for mobile game security (mobile game reverse and protection)
- Generator parameters incoming parameters
- LeetCode:劍指 Offer 42. 連續子數組的最大和
- pytorch查看张量占用内存大小
- UnsupportedOperationException异常
- LeetCode:498. 对角线遍历
猜你喜欢

swagger设置字段required必填

Visual implementation and inspection of visdom

Trying to use is on a network resource that is unavailable

Crash problem of Chrome browser

Cesium draw points, lines, and faces

sublime text没关闭其他运行就使用CTRL+b运行另外的程序问题

Double pointeur en langage C - - modèle classique

TP-LINK 企业路由器 PPTP 配置

ESP8266-RTOS物联网开发

Detailed explanation of dynamic planning
随机推荐
sublime text没关闭其他运行就使用CTRL+b运行另外的程序问题
Hutool gracefully parses URL links and obtains parameters
Tcp/ip protocol
TDengine 社区问题双周精选 | 第三期
Unsupported operation exception
hutool优雅解析URL链接并获取参数
Computer graduation design PHP Zhiduo online learning platform
Roguelike game into crack the hardest hit areas, how to break the bureau?
Image, CV2 read the conversion and size resize change of numpy array of pictures
UnsupportedOperationException异常
sublime text的编写程序时的Tab和空格缩进问题
Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures
力扣每日一题(二)
同一局域网的手机和电脑相互访问,IIS设置
The problem and possible causes of the robot's instantaneous return to the origin of the world coordinate during rviz simulation
Bitwise logical operator
egg. JS getting started navigation: installation, use and learning
LeetCode:41. 缺失的第一个正数
LeetCode:124. 二叉树中的最大路径和
Chrome浏览器的crash问题