« Mongodb » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 53 : | Ligne 53 : | ||
A collection does not require its documents to have the same schema (the same set of fields and the same data types) | A collection does not require its documents to have the same schema (the same set of fields and the same data types) | ||
<kode lang='mongodb'> | <kode lang='mongodb'> | ||
// list collections | |||
db.getCollectionInfos() | |||
db.createCollection("[collectionName]", | db.createCollection("[collectionName]", | ||
{ | { |
Version du 18 février 2024 à 16:03
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.createCollection("[collectionName]", { [option]: [value] }) |
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 |