« Mongodb » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 62 : | Ligne 62 : | ||
}) | }) | ||
</kode> | </kode> | ||
= [https://www.mongodb.com/docs/manual/core/views/ View] = | |||
It is a read-only queryable object whose contents are defined by an aggregation pipeline on other collections or views.<br> | |||
It is computed when you read the view, and it is not stored to disk. | |||
= Backup and restore = | = Backup and restore = |
Version du 18 février 2024 à 16:10
Description
MongoDB stores data records as BSON documents gathered in collections (= SQL table). BSON is a binary representation of JSON documents.
MongoDB documents are composed of field-and-value pairs. The value of a field can be any of the BSON data types.
var mydoc = { // field _id is a primary key _id: ObjectId("5099803df3f4948bd2f98391"), // name holds an embedded document that contains the fields first and last name: { first: "Alan", last: "Turing" }, birth: new Date('Jun 23, 1912'), death: new Date('Jun 07, 1954'), contribs: [ "Turing machine", "Turing test", "Turingery" ], views : NumberLong(1250000) } |
Connect and authenticate
# connect mongosh mongodb://localhost:27017 # alias mongosh # connect and authenticate, use an environment variable to hide the password mongosh "mongodb://user:${DBPASSWORD}@<host>:<port>/admin?authSource=admin" |
Authenticate
db.auth("username", "pwd") db.auth("username", passwordPrompt()) |
Database
// list the databases show dbs // switch to [dbname] use [dbname] // create a new database with a new collection (and insert data) use [newdbname] db.[newCollectionName].insertOne( { x: 1 } ) // drop the current database db.dropDatabase() |
Collection
It gathers documents and is an equivalent of an SQL table.
A collection does not require its documents to have the same schema (the same set of fields and the same data types)
// list collections db.getCollectionInfos() db.runCommand('listCollections') db.createCollection("[collectionName]", { [option]: [value] }) |
View
It is a read-only queryable object whose contents are defined by an aggregation pipeline on other collections or views.
It is computed when you read the view, and it is not stored to disk.
Backup and restore
# restore the backup folder dump to the local mongodb instance mongorestore dump/ |
don't know what to do with file while restore
This may happen because the mongorestore command point to a backup sub-folder not to the backup folder itself.
Authentication
// list the users of the current database db.getUsers() db.runCommand('usersInfo') // get info of a specific user db.getUser("tom", { showCredentials: true, showPrivileges: true, showAuthenticationRestrictions: true }) // create admin use admin db.createUser( { user: "admin", pwd: "mypwd", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) // create a user for the demo database use demo db.createUser( { user: "tom", pwd: passwordPrompt(), // or cleartext password roles: [ { role: "readWrite", db: "demo" }, { role: "read", db: "finances" } ] } ) // change password use admin db.changeUserPassword("tom", "secretpassword") db.changeUserPassword("tom", passwordPrompt()) // delete a user db.dropUser("tom") |
/etc/mongod.conf |
security: authorization: "enabled" |
Bash
mongo <<EOF use admin db.auth("admin", "${MONGODBADMINPWD}") use mydb db.dropDatabase() EOF |
Compass
Installation
Windows
choco install mongodb mongodb-shell |
Key | Value |
---|---|
Service name | MongoDB |
Data directory | C:\Program Files\MongoDB\Server\6.0\data\ |
Log directory | C:\Program Files\MongoDB\Server\6.0\log\ |
- Install the Database Tools in C:\Program Files\MongoDB\Tools
Archlinux
yay mongodb-bin # install dependencies mongodb-bin-debug, mongosh-bin, mongosh-bin-debug # GUI yay mongodb-compass # tools yay mongodb-tools # service sc-status mongodb.service |