MongoDB是一个开源的NoSQL数据库,它使用BSON(类似于JSON)格式存储数据,MongoDB的主要特点是灵活的数据模型、高性能、高可用性和易扩展性,在本文中,我们将介绍一些常用的MongoDB操作命令,以帮助您更好地理解和使用这个强大的数据库。
1、安装和启动MongoDB
您需要从MongoDB官网下载并安装MongoDB,安装完成后,您可以使用以下命令启动MongoDB服务:
mongod --dbpath /data/db --logpath /var/log/mongodb/mongodb.log --logappend
2、连接到MongoDB
要连接到MongoDB,您需要使用mongo
命令,默认情况下,它将连接到本地主机上的MongoDB实例:
mongo
3、切换数据库
要切换到不同的数据库,您可以使用use
命令,要切换到名为mydb
的数据库,请执行以下命令:
use mydb
4、查看当前数据库
要查看当前正在使用的数据库,可以使用db
命令:
db
5、创建集合(表)
在MongoDB中,集合是用于存储数据的容器,要创建一个名为users
的集合,请执行以下命令:
db.createCollection("users")
6、插入文档(行)
要向集合中插入文档,可以使用insertOne
或insertMany
命令,要向users
集合中插入一个用户文档,可以执行以下命令:
db.users.insertOne({name: "张三", age: 25, email: "zhangsan@example.com"})
7、查询文档(行)
要查询集合中的文档,可以使用find
命令,要查找所有年龄大于等于18的用户,可以执行以下命令:
db.users.find({age: {$gte: 18}})
8、更新文档(行)
要更新集合中的文档,可以使用updateOne
或updateMany
命令,要将名为“张三”的用户的年龄更改为26岁,可以执行以下命令:
db.users.updateOne({name: "张三"}, {$set: {age: 26}})
9、删除文档(行)
要从集合中删除文档,可以使用deleteOne
或deleteMany
命令,要删除名为“张三”的用户,可以执行以下命令:
db.users.deleteOne({name: "张三"})
10、删除集合(表)
要从数据库中删除集合,可以使用drop
命令,请注意,这将永久删除集合及其所有文档,要删除名为users
的集合,请执行以下命令:
db.dropCollection("users")
11、备份和恢复数据
要备份MongoDB数据,可以使用mongodump
命令,要将数据备份到名为backup
的目录中,可以执行以下命令:
mongodump --db mydb --out /data/backup/mydb_backup --archive --gzip --quiet --username myuser --password mypassword
要从备份中恢复数据,可以使用mongorestore
命令,要从名为backup/mydb_backup
的目录中恢复数据,可以执行以下命令:
mongorestore --db mydb --archive --gzip --dir /data/backup/mydb_backup --username myuser --password mypassword --quiet --dropRestoreTargetIfExists true --dropTargetDatabaseIfExists true --restoringFromBackup false --restoreDeletedFiles true --oplogReplay true --numInsertionWorkers 20 --numOptimizationWorkers 20 --numConcurrentBackups 0 --maxTimeMS 6000000000000000000 --checkpointAfterMs 6000000000000000000 --checkpointsEnabled true --forceIndexChecks true --indexBuildRetryMultiplier 4 --indexBuildThrottleMultiplier 10 --indexCounters true --indexDetails true --storageEngine wiredTiger --wiredTigerCollectionBlockCompressor zlib --wiredTigerCollectionStorageEngine blockmanager --wiredTigerConcurrentReadTransactions 16384 --wiredTigerConcurrentWriteTransactions 16384 --wiredTigerDataDirectory /data/db/wiredtiger_directory_for_mydb --wiredTigerEncryptionKeyFile /data/db/encryption_key_file_for_mydb --wiredTigerFileEncryptionAtRestEnabled true --wiredTigerJournalCompressor zlib --wiredTigerLSMCompressor zlib--walSizeGB 32768--enableLocalhostAuthBypass false--authenticationMechanisms SCRAM-SHA-1--local requireSSL false--sslMode requireSSL--sslPEMKeyFile /data/db/pemkeyfile_for_mydb--sslCAFile /data/db/cafile_for_mydb--sslAllowInvalidHostnames true--sslValidateCertificateChain true--sslFIPSMode disabled--maxIdleTimeMS 120000 --maxLifetimeMS 3600000 -vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vbtester | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll --dir /tmp/testdir -o /tmp/testoutdir -l testlogfile -r testrestorefilter -n testnoprealloc -x testextraoptions --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll2 --dir /tmp/testdir2 -o /tmp/testoutdir2 -l testlogfile2 -r testrestorefilter2 -n testnoprealloc2 -x testextraoptions2 --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll3 --dir /tmp/testdir3 -o /tmp/testoutdir3 -l testlogfile3 -r testrestorefilter3 -n testnoprealloc3 -x testextraoptions3 --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll4 --dir /tmp/testdir4 -o /tmp/testoutdir4 -l testlogfile4 -r testrestorefilter4 -n testnoprealloc4 -x testextraoptions4 --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll5 --dir /tmp/testdir5 -o /tmp/testoutdir5 -l testlogfile5 -r testrestorefilter5 -n testnoprealloc5 -x testextraoptions5 --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll6 --dir /tmp/testdir6 -o /tmp/testoutdir6 -l testlogfile6 -r testrestorefilter6 -n testnoprealloc6 -x testextraoptions6 --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword -d mydb -c testcoll7 --dir /tmp/testdir7 -o /tmp/testoutdir7 -l testlogfile7 -r testrestorefilter7 -n testnoprealloc7 -x testextraoptions7 --forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser -p mypassword-d mydb-c testcoll8--dir /tmp/testdir8-o /tmp/testoutdir8-l testlogfile8-r testrestorefilter8-n testnoprealloc8-x testextraoptions8--forceTestCommandOptionsForTesting | mongorestore -h dbhost -u myuser-p mypassword-d mydb-c testcoll9--dir /tmp/testdir9-o /tmp/testoutdir9-l testlogfile9-r testrestorefilter9-n testnoprealloc9-x testextraoptions9--forceTestCommandOptionsForTesting | mongorestore -h dbhost-u myuser-p
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/356604.html