MongoDB
Mongosh
NoSQL
Mongosh
Info
MongoDB can be manipulated with the mongo command,
However, if you use the "mongo" command, you will receive a warning that the "mongo" command is deprecated and will be removed in a future release.
This is because the "mongo" command will be replaced by the more user-friendly and compatible "mongosh" command.
For this reason, the following is a description of how to use mongosh.
mongosStarting mongosh
mogosh
Current Mongosh Log ID: [ id]
Connecting to: mongodb://127.0.0.1:27017/?directConnection= true& serverSelectionTimeoutMS = 2000 & appName = mongosh+2.0.1
Using MongoDB: 7 .0.2
Using Mongosh: 2 .0.1
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
test>
Warning
For security reasons, we recommend avoiding command lines containing passwords. Instead, authentication can be performed after connecting in the MongoDB shell.
mongosh
> use admin
switched to db admin
> db.auth( "admin" ,"[password]" )
Info
The following warning may appear in mongosh.
Warning: Found ~/.mongorc.js, but not ~/.mongoshrc.js. ~/.mongorc.js will not be loaded.
You may want to copy or rename ~/.mongorc.js to ~/.mongoshrc.js.
In that case, just rename it as described.
cp ~/.mongorc.js ~/.mongorc_old.js
mv ~/.mongorc.js ~/.mongoshrc.js
Info
If admin is specified
mongosh -u admin -p --authenticationDatabase admin
Enter password: **********
Current Mongosh Log ID: 652a46b96004ccbf87fa73d4
Connecting to: mongodb://<credentials>@127.0.0.1:27017/?directConnection= true& serverSelectionTimeoutMS = 2000 & authSource = admin& appName = mongosh+2.0.1
Using MongoDB: 7 .0.2
Using Mongosh: 2 .0.1
For registered user designation
mongosh -u [ user] -p --authenticationDatabase [ db]
Enter password: ******
Current Mongosh Log ID: [ id]
Connecting to: mongodb://<credentials>@127.0.0.1:27017/?directConnection= true& serverSelectionTimeoutMS = 2000 & authSource =[ db名] & appName = mongosh+2.0.1
Using MongoDB: 7 .0.2
Using Mongosh: 2 .0.1
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
Check the version of Mongosh
Listing of databases
show dbs
test> show dbs
admin 180 .00 KiB
config 108 .00 KiB
ec_sol_db1 92 .00 KiB
local 76 .00 KiB
Info
When you first log in, you may see the following error message
test> show dbs
MongoServerError: Command listDatabases requires authentication
When an error is displayed, you must log in again with authentication.
mongosh -u admin -p --authenticationDatabase admin
Select the DB
use [db]
test> use ec_sol_db1
switched to db ec_sol_db1
Check the collection
show collections
ec_sol_db1> show collections
ec_sol_pes_tbl
Check access privileges in the user list
admin> db.system.users.find()
If you want to check access privileges in the user list, you must log in with the admin designation.
mongosh -u admin -p --authenticationDatabase
test> use admin
switched to db admin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 admin> db.system.users.find() ;
[
{
_id: 'admin.admin' ,
userId: new UUID( "[UUID]" ) ,
user: 'admin' ,
db: 'admin' ,
credentials: {
'SCRAM-SHA-1' : {
iterationCount: 10000 ,
salt: '[salt]' ,
storedKey: '[storedKey]' ,
serverKey: '[serverKey]'
} ,
'SCRAM-SHA-256' : {
iterationCount: 15000 ,
salt: '[salt]' ,
storedKey: '[storedKey]' ,
serverKey: '[serverKey]'
}
} ,
roles: [
{ role: 'userAdminAnyDatabase' , db: 'admin' } ,
{ role: 'readWrite' , db: '[db]' }
]
} ,
{
_id: '[db].[user]' ,
userId: new UUID( "[UUID]" ) ,
user: '[user]' ,
db: '[db名]' ,
credentials: {
'SCRAM-SHA-1' : {
iterationCount: 10000 ,
salt: '[salt]' ,
storedKey: '[storedKey]' ,
serverKey: '[serverKey]'
} ,
'SCRAM-SHA-256' : {
iterationCount: 15000 ,
salt: '[salt]' ,
storedKey: '[storedKey]' ,
serverKey: '[serverKey]'
}
} ,
roles: [ { role: 'readWrite' , db: '[db]' } ]
}
]
admin registration
The user administrator (admin) must be registered to use the DB for the first time.
db.createUser()
mongosh
use admin
db.createUser({ user: "admin" , pwd: "[password]" , roles: [ "userAdminAnyDatabase" ]})
Database Creation
use [db]
Create a database (database name is "myDatabase")
Collection Creation
db.createCollection('コレクション名')
Create a collection (name the collection "myCollection")
db.createCollection( 'myCollection' )
Registration of a specific user
db.createUser()
Connect to a specific database (database name is "myDatabase")
use myDatabase
db.createUser({ user: "user" , pwd: "[password]" , roles: [ "readWrite" ]})
db.grantRolesToUser()
If you wish to grant the same privileges to other databases, do the following
Connect to a specific database (database name is "anotherDatabase")
use anotherDatabase
db.grantRolesToUser( "user" , [{ role: "readWrite" , db: "anotherDatabase" }])
It is a good idea to add root privileges to admin privileges.
Please be careful with password management and permission settings as you have access to all db's and collections.
db.grantRolesToUser( "admin" , [ "root" ])
Check the contents of the collection
db.ec_sol_pes_tbl.find()
1
2
3
4
5
6
7
8
9
10
11
12 [ test> use ec_sol_db1
switched to db ec_sol_db1
ec_sol_db1> db.ec_sol_pes_tbl.find()
[
{
_id: ObjectId( "65294a82e062ec915f2c95be" ) ,
col1: ISODate( "2023-03-03T00:05:14.071Z" ) ,
col2: 'ALONE' ,
col3: 414 ,
col4: 1 ,
col5: 87 .99,
# …