网站建设 域名销氪crm

当前位置: 首页 > news >正文

网站建设 域名,销氪crm,wordpress分类目录下文章过多_添加文章目录导航,手机版网页游戏概述 mongodb是一个nosql数据库#xff0c;它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富#xff0c;最像关系数据库的。数据库格式为BSON 相关概念实例#xff1a;系统上运行的mongodb的进程#xff0c;类似于mysql实例#xff1b;库#xff1a;每个数…概述 mongodb是一个nosql数据库它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富最像关系数据库的。数据库格式为BSON 相关概念实例系统上运行的mongodb的进程类似于mysql实例库每个数据库都是独立的有自己的用户权限独立存储集合类似于mysql的库 集合由一组文档构成类似于mysql的表 文档mongodb数据库的最小数据集是由多个键值对有序组合的数据单元类似于mysql的数据记录主键:唯一标识一行数据 特性1、面向集合文档存储适合存储json形式的数据2、格式自由数据格式不固定数据结构发生变更的同时不会影响程序运行3、面向对象的sql查询语句基本涵盖关系型数据库的所有查询语句4、有索引的支持查询效率更快5、支持复制和自动故障转移6、可以使用分片集群提升查询性能 应用场景 游戏\物流\社交\物联网\视频直播\大数据 安装Mongodb rpm安装 移动到yum.repos.d目录下创建mongodb的yum文件 [rootlocalhost ~]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vim mongo.repo 写入以下内容 [mongodb-org-4.2] nameMongoDB Repository baseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck1 enabled1 gpgkeyhttps://www.mongodb.org/static/pgp/server-4.2.asc安装 [rootlocalhost yum.repos.d]# yum install -y mongodb-org.. ..正在安装 : mongodb-org-tools-4.2.24-1.el7.x86_64 15 正在安装 : mongodb-org-mongos-4.2.24-1.el7.x86_64 25 正在安装 : mongodb-org-shell-4.2.24-1.el7.x86_64 35 正在安装 : mongodb-org-server-4.2.24-1.el7.x86_64 45 Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.正在安装 : mongodb-org-4.2.24-1.el7.x86_64 55 验证中 : mongodb-org-server-4.2.24-1.el7.x86_64 15 验证中 : mongodb-org-4.2.24-1.el7.x86_64 25 验证中 : mongodb-org-shell-4.2.24-1.el7.x86_64 35 验证中 : mongodb-org-mongos-4.2.24-1.el7.x86_64 45 验证中 : mongodb-org-tools-4.2.24-1.el7.x86_64 55 已安装:mongodb-org.x86_64 0:4.2.24-1.el7 作为依赖被安装:mongodb-org-mongos.x86_64 0:4.2.24-1.el7 mongodb-org-server.x86_64 0:4.2.24-1.el7 mongodb-org-shell.x86_64 0:4.2.24-1.el7 mongodb-org-tools.x86_64 0:4.2.24-1.el7 完毕启动数据库并查看端口号 注启动数据库服务特殊db没有b systemctl start mongod.service  [rootlocalhost ~]# systemctl start mongod.service [rootlocalhost ~]# netstat -antpu | grep mongod tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 74651/mongod 目录结构 rpm -ql mongodb-org-server/etc/mongod.confport: 27017监听端口号bindIp: 127.0.0.1监听地址/run/mongodbPID文件/usr/bin/mongod启动命令/var/lib/mongo存储数据文件/var/log/mongodb日志 rpm -ql mongodb-org-shell/usr/bin/mongo客户端命令 rpm -ql mongodb-org-tools/usr/bin/mongodump备份数据库/usr/bin/mongoexport备份文档/usr/bin/mongoimport恢复文档/usr/bin/mongorestore恢复数据库 默认数据库 admin从权限的角度来看这是root数据库。要是将一个用户添加到这个数据库这个用户自动继承所有数据库的权限。 一些特定的服务器端命令也只能从这个数据库运行比如列出所有的数据库或者关闭服务器。local:这个数据库永远不会被复制可以用来存储限于本地单台服务器的任意集合。config:当Mongo用于分片设置时config数据库在内部使用用于保存分片的相关信息。 数据库操作 库操作命令整理 查看数据库show databasesshow dbs显示当前所在数据库db切换数据库use  dbName数据库创建隐式创建不用主动创建使用use newDB会自动创建不存在的数据库只有在库中创建集合后才会保存并使用show dbs查看到删除数据库use dbNamedb.dropdatabase() 输入mongo就会进入数据库模式 [rootlocalhost ~]# mongo MongoDB shell version v4.2.24 connecting to: mongodb://127.0.0.1:27017/?compressorsdisabledgssapiServiceNamemongodb Implicit session: session { id : UUID(593314ff-d1da-4a78-b01b-128e04aa71d8) } MongoDB server version: 4.2.24 Welcome to the MongoDB shell. For interactive help, type help. For more comprehensive documentation, seehttps://docs.mongodb.com/ Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com Server has startup warnings: 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is always. 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] ** We suggest setting it to never 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is always. 2023-08-14T18:50:28.5190800 I CONTROL [initandlisten] ** We suggest setting it to never

2023-08-14T18:50:28.5190800 I CONTROL [initandlisten]

Enable MongoDBs free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc).The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you.To enable free monitoring, run the following command: db.enableFreeMonitoring() To permanently disable this reminder, run the following command: db.disableFreeMonitoring() — 与mysql不同的查看命令dbs show databases admin 0.000GB config 0.000GB local 0.000GBshow dbs admin 0.000GB config 0.000GB local 0.000GB两个命令都可以查看数据库 切换数据库 use local switched to db local 一切换到当前数据库 db local 所在库创建数据库 use liweijia switched to db liweijia删除数据库 use dbName db.dropdatabase() 文档操作 mongodb存储数字时默认是float若要以整型形式存储numberInt() 文档操作命令整理 查看集合show tables创建集合db.createCollection(test)删除集合db.需要删除的集合名称.drop()插入数据文档db.集合名称.insert({key:value})                                                             单行db.集合名称.insertmany([{key:value}{key:value}{key:value}])        多行mongodb默认数字的数据类型float浮点型若要改变为整型NumberInt(数字)查询数据全集合查询db.集合名称.find({})db.集合名称.find()条件查询db.info.find({查询条件1key:value,查询条件2,…},{key1:1|0,key2:1|0,…})key:1 显示key:0 不显示当显示的key只有一个时key:1 只显示该key及对应valuekey:0 显示除了该key之外其他所有keyvalue查询集合中有多少文档db.集合名称.count()删除数据全文删除db.集合名称.remove({})条件删除db.集合名称.remove({key:value})更新数据db.info.update({_id:3}, {\(set:{nickname:jack}})所有满足条件的文档都进行更新db.info.update({userid:1003},{\)set:{nickname:tom}},{multi:true})更新文档进行数值递增db.info.update({userid:1003},{\(inc:{likenum:NumberInt(1000)}}) 创建集合db.createCollection(shiyan) { ok : 1 }查看集合show tables shiyan删除集合db.shiyan.drop() trueshow tables 插入数据单行 创建数据库use lwj switched to db lwjdb.createCollection(test) { ok : 1 }show dbs admin 0.000GB config 0.000GB local 0.000GB lwj 0.000GB test 0.000GBdb.lwj.insert({id:1,name:lwj1}) WriteResult({ nInserted : 1 })插入数据多行db.lwj.insertMany([{id:2,name:lwj2},{id:3,name:lwj3},{id:4,name:lwj4}]) {acknowledged : true,insertedIds : [ObjectId(64dae9e52e7071ebd2631dcd),ObjectId(64dae9e52e7071ebd2631dce),ObjectId(64dae9e52e7071ebd2631dcf)] }全集合查询db.lwj.find() { _id : ObjectId(64dae4232e7071ebd2631dcc), id : 1, name : lwj1 } { _id : ObjectId(64dae9e52e7071ebd2631dcd), id : 2, name : lwj2 } { _id : ObjectId(64dae9e52e7071ebd2631dce), id : 3, name : lwj3 } { _id : ObjectId(64dae9e52e7071ebd2631dcf), id : 4, name : lwj4 }条件查询 检索id等于3的数据db.lwj.find({id:3}) { _id : ObjectId(64dae9e52e7071ebd2631dce), id : 3, name : lwj3 }条件查询其中{name:0}则是除了name都显示,{name:1}指的是只显示namedb.lwj.find({id:3},{name:0}) { _id : ObjectId(64dae9e52e7071ebd2631dce), id : 3 }db.lwj.find({id:3},{name:1}) { _id : ObjectId(64dae9e52e7071ebd2631dce), name : lwj3 }数据更新(匹配1未完成0已完成1)db.lwj.update({name:lwj1},{\)set:{id:1024}}) WriteResult({ nMatched : 1, nUpserted : 0, nModified : 1 }) 查看db.lwj.find({name:lwj1}) { _id : ObjectId(64dae4232e7071ebd2631dcc), id : 1024, name : lwj1 } Mongodb数据库备份 备份命令mongodump 选项-hhostname:port-uusername-ppassword–authenticationDatabasedbname-ddatabase-opath语法 mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory -d 指定要备份的数据库名称 -h 指定主机名端口号如localhost27017 -u -p 用户密码 -o 指定备份文件输出的目录备份文件以该目录为基准创建 备份命令mongoexport 选项-hhostname:port-uusername-ppassword–authenticationDatabasedbname-ddatabase-opath语法 mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json
mongodump备份 首先要exit退出数据库模式exit bye [rootlocalhost ~]#  mongodump -d lwj -o /opt/lwj-back.json 2023-08-15T13:47:40.3950800    writing lwj.lwj to /opt/lwj-back.json/lwj/lwj.bson 2023-08-15T13:47:40.3960800    writing lwj.test to /opt/lwj-back.json/lwj/test.bson 2023-08-15T13:47:40.3960800    done dumping lwj.lwj (4 documents) 2023-08-15T13:47:40.3970800    done dumping lwj.test (0 documents) [rootlocalhost ~]# cd /opt [rootlocalhost opt]# ls lwj-back.json  rhmongoexport备份test合集 首先要exit退出数据库模式exit bye [rootlocalhost opt]# mongoexport -d lwj -c test -o /opt/test-bakc.json 2023-08-15T13:55:58.6110800 connected to: mongodb://localhost/ 2023-08-15T13:55:58.6140800 exported 0 records [rootlocalhost opt]# ls lwj-back.json rh test-bakc.json [rootlocalhost opt]# 恢复命令mongorestore 选项-hhostname:port-uusername-ppassword–authenticationDatabasedbname-ddatabase–drop当目标数据库中存在同名集合则删除在恢复语法mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile 恢复命令mongoimport 选项-hhostname:port-uusername-ppassword–authenticationDatabasedbname-ddatabase–drop当目标数据库中存在同名集合则删除在恢复语法mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password  backupDirectory/jsonFile.json 先删除lwj数据库show dbs admin 0.000GB config 0.000GB local 0.000GB lwj 0.000GB test 0.000GBshow tables lwj shiyanuse lwj switched to db lwjdb.dropDatabase() { dropped : lwj, ok : 1 }show dbs admin 0.000GB config 0.000GB local 0.000GB test 0.000GB恢复数据库 [rootlocalhost ~]# ls /opt/lwj-back.json/* lwj.bson lwj.metadata.json test.bson test.metadata.json [rootlocalhost ~]# mongorestore -d lwj -c lwj /opt/lwj-back.json/lwj/lwj.bson 2023-08-15T14:22:08.5150800 checking for collection data in /opt/lwj-back.json/lwj/lwj.bson 2023-08-15T14:22:08.5160800 reading metadata for lwj.lwj from /opt/lwj-back.json/lwj/lwj.metadata.json 2023-08-15T14:22:08.5200800 restoring lwj.lwj from /opt/lwj-back.json/lwj/lwj.bson 2023-08-15T14:22:08.5810800 no indexes to restore 2023-08-15T14:22:08.5810800 finished restoring lwj.lwj (4 documents, 0 failures) 2023-08-15T14:22:08.5810800 4 document(s) restored successfully. 0 document(s) failed to restore.登陆mongo进行验证show dbs admin 0.000GB config 0.000GB local 0.000GB lwj 0.000GB test 0.000GBuse lwj switched to db lwjshow tables lwjdb.lwj.find() { _id : ObjectId(64dae9e52e7071ebd2631dcd), id : 2, name : lwj2 } { _id : ObjectId(64dae9e52e7071ebd2631dce), id : 3, name : lwj3 } { _id : ObjectId(64dae9e52e7071ebd2631dcf), id : 4, name : lwj4 } { _id : ObjectId(64dae4232e7071ebd2631dcc), id : 1024, name : lwj1 }删除集合db.lwj.drop() trupuse lwj switched to db hyshow tables恢复lwj集合 [rootlocalhost hy]# mongoimport -d hy -c lwj /opt/lwj-back.json 2023-08-15T10:02:27.8580800 connected to: mongodb://localhost/ 2023-08-15T10:02:27.8610800 6 document(s) imported successfully. 0 document(s) failed to import. ##查看show tables lwjdb.test.find() { _id : ObjectId(64dae9e52e7071ebd2631dcd), id : 2, name : lwj2 } { _id : ObjectId(64dae9e52e7071ebd2631dce), id : 3, name : lwj3 } { _id : ObjectId(64dae9e52e7071ebd2631dcf), id : 4, name : lwj4 } { _id : ObjectId(64dae4232e7071ebd2631dcc), id : 1024, name : lwj1 }除此之外表还可以导入到其它的库创建一个新库yes,把集合test导入  ##创建库show dbs admin 0.000GB config 0.000GB hy 0.000GB local 0.000GBuse yes switched to db yesdb.createCollection(hy) { ok : 1 }show dbs admin 0.000GB config 0.000GB hy 0.000GB local 0.000GB yes 0.000GBshow tables hy##把集合test导入yes [rootlocalhost hy]# mongoimport -d yes -c test /opt/test-back.json 2023-08-15T10:06:57.9900800 connected to: mongodb://localhost/ 2023-08-15T10:06:57.9930800 6 document(s) imported successfully. 0 document(s) failed to import. ##验证show tables hy testdb.test.find() { _id : ObjectId(64da3428cbf20d8dc76b3349), id : 2, name : hy2, age : 666 } { _id : ObjectId(64da3428cbf20d8dc76b334a), id : 3, name : hy3, age : 20 } { _id : ObjectId(64da3e5ccbf20d8dc76b334b), id : 2, name : hy4, age : 666 } { _id : ObjectId(64da3e5ccbf20d8dc76b334c), id : 2, name : hy5, age : 666 } { _id : ObjectId(64da414bcbf20d8dc76b334d), id : 7, name : hy7, age : 120 } { _id : ObjectId(64da337fcbf20d8dc76b3348), id : 99, name : hy1, age : 88 }