MongoDB 4.2.7安装后,除了‘show dbs’你还能用命令行做这些事(新手快速上手)
MongoDB 4.2.7安装后命令行实战从零开始玩转数据库当你看到show dbs成功显示数据库列表时说明MongoDB已经准备就绪。但接下来呢命令行界面就像一片未知海域而我们将带你从浅滩开始探索。以下是几个能让新手快速获得成就感的实战操作1. 创建你的第一个数据库和集合在MongoDB中数据库和集合的创建是隐式的——当你第一次插入数据时它们就自动存在了。试试这个简单的操作序列// 切换到新数据库如果不存在会自动创建 use myFirstDatabase // 插入第一条文档集合也会自动创建 db.myCollection.insertOne({ name: 初学者指南, difficulty: easy, tags: [mongodb, tutorial, beginner], created_at: new Date() })执行后你会看到类似这样的响应{ acknowledged : true, insertedId : ObjectId(5f8d...) }注意MongoDB中的日期类型建议使用new Date()而不是字符串这样可以利用日期查询功能2. 批量插入与基础查询现在让我们用更真实的数据来练习// 批量插入多条文档 db.users.insertMany([ { username: dev_amy, email: amyexample.com, role: admin, last_login: new Date(2023-05-15) }, { username: coder_bob, email: bobdev.io, role: user, last_login: new Date(2023-06-20) }, { username: test_user, email: testtest.org, role: guest, last_login: new Date(2023-06-01) } ]) // 查询所有用户 db.users.find() // 带条件的查询 db.users.find({ role: admin }) // 使用比较操作符 db.users.find({ last_login: { $gt: new Date(2023-06-10) } })常用查询操作符速查表操作符说明示例$eq等于{age: {$eq: 25}}$gt大于{score: {$gt: 90}}$in在数组中{role: {$in: [admin,user]}}$regex正则表达式匹配{email: {$regex: /example/}}3. 更新文档的多种姿势MongoDB提供了灵活的更新方式// 更新单个文档 db.users.updateOne( { username: test_user }, { $set: { role: user, updated_at: new Date() } } ) // 更新多个文档 db.users.updateMany( { role: user }, { $inc: { login_count: 1 } } ) // 替换整个文档 db.users.replaceOne( { username: dev_amy }, { username: dev_amy, email: amy.newexample.com, roles: [admin, supervisor], metadata: { department: IT } } )更新操作符实用技巧$set设置字段值不存在则创建$unset删除字段$inc数值增减$push向数组添加元素$addToSet向数组添加不重复元素4. 删除操作与数据库管理当需要清理数据时// 删除单个文档 db.users.deleteOne({ username: test_user }) // 删除所有匹配文档 db.users.deleteMany({ role: guest }) // 删除整个集合 db.myCollection.drop() // 删除当前数据库 db.dropDatabase()重要提示生产环境慎用drop命令建议先执行find确认要删除的数据5. 进阶查询技巧掌握这些查询方法能让你的操作更高效// 字段投影只返回指定字段 db.users.find({}, { username: 1, email: 1, _id: 0 }) // 排序结果 db.users.find().sort({ last_login: -1 }) // -1表示降序 // 分页查询 db.users.find().skip(10).limit(5) // 复杂条件组合 db.users.find({ $or: [ { role: admin }, { last_login: { $gt: new Date(2023-06-01) }, login_count: { $gte: 5 } } ] }) // 聚合统计 db.users.aggregate([ { $group: { _id: $role, count: { $sum: 1 }, lastActivity: { $max: $last_login } }} ])6. 索引优化初探随着数据量增长索引会成为性能关键// 创建单字段索引 db.users.createIndex({ username: 1 }) // 1表示升序 // 创建复合索引 db.users.createIndex({ role: 1, last_login: -1 }) // 查看集合索引 db.users.getIndexes() // 删除索引 db.users.dropIndex(username_1)索引使用建议为常用查询字段创建索引复合索引字段顺序很重要索引会占用存储空间并影响写入性能使用explain()分析查询执行计划7. 日常维护命令备忘这些命令能帮助你了解数据库状态// 查看所有数据库 show dbs // 查看当前数据库集合 show collections // 查看集合统计信息 db.users.stats() // 查看命令执行统计 db.serverStatus() // 查看当前连接 db.currentOp() // 安全关闭MongoDB在admin数据库执行 use admin db.shutdownServer()记住MongoDB的命令行操作就像搭积木——简单命令组合起来就能完成复杂任务。当你熟悉这些基础操作后可以尝试更高级的特性如事务、聚合管道和MapReduce。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2601406.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!