文章目录
MongoDB命令非常多,下面仅列出一些基础且常用的命令,并按功能分类:
连接与退出
-
连接数据库:
bashmongo [hostname]:[port]/[database]
示例:连接本地的test数据库
bashmongo localhost:27017/test
-
切换数据库:
javascriptuse [database]
示例:切换到名为mydb的数据库
javascriptuse mydb
-
退出 MongoDB Shell:
javascriptexit
数据库操作
-
显示所有数据库:
javascriptshow dbs
-
创建数据库(在插入数据时会自动创建):
javascriptdb
-
删除数据库:
javascriptdb.dropDatabase()
集合操作
-
显示当前数据库中所有集合:
javascriptshow collections
-
创建集合(同理,在插入文档时会自动创建):
javascriptdb.createCollection("mycollection")
-
删除集合:
javascriptdb.mycollection.drop()
文档操作
-
插入文档:
javascriptdb.mycollection.insertOne({ "name": "John", "age": 30 })
-
查询文档:
javascriptdb.mycollection.find() // 查询所有文档 db.mycollection.find({"name": "John"}) // 条件查询
-
更新文档:
javascriptdb.mycollection.updateOne({ "name": "John" }, { $set: { "age": 31 } }) // 更新第一条匹配文档
-
替换文档:
javascriptdb.mycollection.replaceOne({ "name": "John" }, { "name": "John", "age": 32, "job": "Engineer" })
-
删除文档:
javascriptdb.mycollection.deleteOne({ "name": "John" }) // 删除第一条匹配文档
索引操作
-
创建索引:
javascriptdb.mycollection.createIndex({ "name": 1 }) // 创建升序索引
-
查看索引:
javascriptdb.mycollection.getIndexes()
当然,以下是更全面的MongoDB命令分类:
数据查询与操作
-
插入文档:
javascriptdb.collection.insertOne(doc) // 插入单个文档 db.collection.insertMany(docs) // 插入多个文档 示例: db.users.insertOne({ name: "John", age: 30, occupation: "Engineer" })
-
更新文档:
javascriptdb.collection.updateOne(filter, update, options) db.collection.updateMany(filter, update, options) 示例(递增age): db.users.updateOne({ name: "John" }, { $inc: { age: 1 } }) (使用upsert选项,如果不存在则插入新文档): db.users.updateOne({ name: "Jane" }, { $set: { name: "Jane", age: 25 } }, { upsert: true })
-
替换文档:
javascriptdb.collection.replaceOne(filter, replacement, options) 示例: db.users.replaceOne({ name: "John" }, { name: "John Doe", age: 31, occupation: "Manager" })
-
删除文档:
javascriptdb.collection.deleteOne(filter, options) db.collection.deleteMany(filter, options) 示例: db.users.deleteOne({ name: "John Doe" })
-
查询文档:
javascriptdb.collection.find(filter, projection) 示例(查询所有用户): db.users.find({}) (查询特定用户并仅返回name字段): db.users.find({ name: "John Doe" }, { name: 1, _id: 0 })
-
排序和分页:
javascriptdb.collection.find().sort(sort).skip(numToSkip).limit(numToReturn) 示例(按年龄降序获取前10名用户): db.users.find().sort({ age: -1 }).limit(10)
索引操作
-
创建索引:
javascriptdb.collection.createIndex(keys, options) 示例(为name字段创建升序索引): db.users.createIndex({ name: 1 }) (为多个字段创建复合索引): db.users.createIndex({ name: 1, age: -1 })
-
列出索引:
javascriptdb.collection.getIndexes() 示例: db.users.getIndexes()
-
删除索引:
javascriptdb.collection.dropIndex(indexName) db.collection.dropIndexes() 示例(删除名为"name_1"的索引): db.users.dropIndex("name_1")
集合管理
-
统计文档数量:
javascriptdb.collection.countDocuments(filter) 示例: db.users.countDocuments({})
-
查看集合状态:
javascriptdb.collection.stats() 示例: db.users.stats()
此外还有复制集、分片集群、用户权限管理、事务处理等高级功能的命令,由于篇幅原因在此不展开详细列举。建议参考官方文档以获取完整信息:https://docs.mongodb.com/manual/
python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)
最后我们放松一下眼睛