MongoDB命令集合大全

基本操作

db.AddUser(username,password)//添加用户

db.auth(usrename,password)//设置数据库连接验证

db.cloneDataBase(fromhost)//从目标服务器克隆一个数据库

db.commandHelp(name)//returns the help for the command

db.copyDatabase(fromdb,todb,fromhost)//复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址

db.createCollection(name,{size:3333,capped:333,max:88888})//创建一个数据集,相当于一个表

db.currentOp()//取消当前库的当前操作

db.dropDataBase()//删除当前数据库

db.eval(func,args)//run code server-side

db.getCollection(cname)//取得一个数据集合,同用法:db['cname'] or
db.getCollenctionNames()//取得所有数据集合的名称列表

db.getLastError()//返回最后一个错误的提示消息

db.getLastErrorObj()//返回最后一个错误的对象

db.getMongo()//取得当前服务器的连接对象get the server

db.getMondo().setSlaveOk()//allow this connection to read from then nonmaster membr of a replica pair

db.getName()//返回当操作数据库的名称

db.getPrevError()//返回上一个错误对象

db.getProfilingLevel()

db.getReplicationInfo()//获得重复的数据

db.getSisterDB(name)//get the db at the same server as this onew

db.killOp()//停止(杀死)在当前库的当前操作

db.printCollectionStats()//返回当前库的数据集状态

db.printReplicationInfo()

db.printSlaveReplicationInfo()

db.printShardingStatus()//返回当前数据库是否为共享数据库

db.removeUser(username)//删除用户

db.repairDatabase()//修复当前数据库

db.resetError()

db.runCommand(cmdObj)//run a database command.if cmdObj is a string, turns it into {cmdObj:1}

db.setProfilingLevel(level)//0=off,1=slow,2=all

db.shutdownServer()//关闭当前服务程序

db.version()//返回当前程序的版本信息

数据集(表)操作

 

db.test.find({id:10})//返回test数据集ID=10的数据集
db.test.find({id:10}).count()//返回test数据集ID=10的数据总数
db.test.find({id:10}).limit(2)//返回test数据集ID=10的数据集从第二条开始的数据集
db.test.find({id:10}).skip(8)//返回test数据集ID=10的数据集从0到第八条的数据集
db.test.find({id:10}).limit(2).skip(8)//返回test数据集ID=1=的数据集从第二条到第八条的数据
db.test.find({id:10}).sort()//返回test数据集ID=10的排序数据集
db.test.findOne([query])//返回符合条件的一条数据
db.test.getDB()//返回此数据集所属的数据库名称
db.test.getIndexes()//返回些数据集的索引信息
db.test.group({key:...,initial:...,reduce:...[,cond:...]})
db.test.mapReduce(mayFunction,reduceFunction,<optional params>)
db.test.remove(query)//在数据集中删除一条数据
db.test.renameCollection(newName)//重命名些数据集名称
db.test.save(obj)//往数据集中插入一条数据
db.test.stats()//返回此数据集的状态
db.test.storageSize()//返回此数据集的存储大小
db.test.totalIndexSize()//返回此数据集的索引文件大小
db.test.totalSize()//返回些数据集的总大小
db.test.update(query,object[,upsert_bool])//在此数据集中更新一条数据
db.test.validate()//验证此数据集
db.test.getShardVersion()//返回数据集共享版本号
<think>好的,用户现在需要我介绍一下MongoDB命令大全。之前他问过关于replace操作,现在可能是在学习MongoDB的基础,需要更全面的命令总结。我需要先理清MongoDB的主要命令类别,比如数据库操作、集合操作、文档CRUD、索引、聚合、用户权限等。 用户可能是刚入门的开发者或者学生,想要一个系统的命令参考,方便日常使用。他可能不太清楚MongoDB命令的具体分类,或者需要快速查找某个命令的语法和例子。所以我的回答需要结构清晰,分门别类,每个部分给出常用命令和示例,同时注意中文解释的准确性。 之前回复过replaceOne,现在需要扩展成全面的命令大全。需要注意的是,MongoDB命令很多,不可能全部覆盖,但需要包括最常用的部分,避免信息过载。同时,用户可能希望了解基本操作和进阶功能,比如聚合管道和索引优化。 要确保每个命令的语法正确,例子简单明了,比如插入文档用insertOne,查询用find,更新用updateOne等。还要提醒用户注意不同版本的可能差异,比如MongoDB的某些命令在新版本中可能有变化,或者过时的方法如save()已经不推荐使用。 另外,用户可能对权限管理和聚合操作不太熟悉,这部分需要详细说明,比如创建用户、角色,以及聚合管道的使用场景。索引部分要解释不同类型的索引及其适用情况,帮助用户优化查询性能。 最后,需要总结使用建议,比如先掌握基础CRUD,再学习聚合和索引,提醒用户参考官方文档获取最新信息。整体结构要层次分明,方便用户快速浏览和查找所需命令,同时保持语言简洁,避免冗长。</think>以下为 **MongoDB 常用命令分类总结**,涵盖数据库、集合、文档操作及高级功能: --- ### **一、数据库操作** 1. **查看所有数据库** ```bash show dbs ``` 2. **切换/创建数据库** ```bash use 数据库名 # 若数据库不存在则自动创建 ``` 3. **删除当前数据库** ```bash db.dropDatabase() ``` --- ### **二、集合操作** 1. **查看所有集合** ```bash show collections ``` 2. **创建集合** ```bash db.createCollection("集合名", { 可选参数 }) # 示例:设置固定大小 db.createCollection("logs", { capped: true, size: 100000 }) ``` 3. **删除集合** ```bash db.集合名.drop() ``` --- ### **三、文档 CRUD 操作** #### **1. 插入文档** ```bash db.集合名.insertOne({ 文档 }) # 插入单个文档 db.集合名.insertMany([{文档1}, {文档2}]) # 批量插入 ``` #### **2. 查询文档** ```bash db.集合名.find({ 查询条件 }, { 投影字段 }) # 基础查询 db.集合名.findOne({ 条件 }) # 返回第一条匹配结果 ``` - **条件示例** ```bash # 查询年龄大于25的用户,仅返回name字段 db.users.find({ age: { $gt: 25 } }, { name: 1 }) ``` #### **3. 更新文档** ```bash db.集合名.updateOne({ 条件 }, { $set: {字段: 值} }) # 更新第一个匹配项 db.集合名.updateMany({ 条件 }, { $set: {字段: 值} }) # 批量更新 ``` - **操作符** `$set`(修改字段)、`$unset`(删除字段)、`$inc`(数值增加)等 #### **4. 删除文档** ```bash db.集合名.deleteOne({ 条件 }) # 删除第一条匹配文档 db.集合名.deleteMany({ 条件 }) # 删除所有匹配文档 ``` --- ### **四、索引管理** 1. **创建索引** ```bash db.集合名.createIndex({ 字段: 排序方向 }, { 选项 }) # 示例:为email字段创建唯一索引 db.users.createIndex({ email: 1 }, { unique: true }) ``` 2. **查看索引** ```bash db.集合名.getIndexes() ``` 3. **删除索引** ```bash db.集合名.dropIndex("索引名称") ``` --- ### **五、聚合查询** 1. **基础聚合管道** ```bash db.集合名.aggregate([ { $match: { 条件 } }, # 过滤文档 { $group: { _id: "$字段", 统计字段: { $sum: 1 } } }, # 分组统计 { $sort: { 字段: 1 } } # 排序(1升序,-1降序) ]) ``` 2. **常用聚合操作符** `$sum`, `$avg`, `$max`, `$min`, `$push`, `$project`(字段投影) --- ### **六、用户与权限管理** 1. **创建用户** ```bash use admin db.createUser({ user: "用户名", pwd: "密码", roles: [ { role: "角色", db: "数据库名" } ] }) ``` 2. **常用角色** `read`(只读)、`readWrite`(读写)、`dbAdmin`(数据库管理)、`root`(超级用户) 3. **验证用户** ```bash db.auth("用户名", "密码") ``` --- ### **七、实用工具命令** 1. **统计文档数量** ```bash db.集合名.countDocuments({ 条件 }) ``` 2. **清空集合(保留结构)** ```bash db.集合名.deleteMany({}) # 删除所有文档 ``` 3. **导出/导入数据** ```bash mongodump --db 数据库名 # 导出数据库 mongorestore --db 数据库名 # 导入数据库 ``` --- ### **八、高级功能** 1. **地理空间查询** ```bash db.places.createIndex({ location: "2dsphere" }) # 创建地理索引 db.places.find({ location: { $near: { $geometry: { type: "Point", coordinates: [经度, 纬度] }, $maxDistance: 1000 # 最大距离(米) } } }) ``` 2. **事务支持** ```bash session.startTransaction() try { db.集合名.updateOne(...); db.另一集合名.deleteOne(...); session.commitTransaction(); } catch (error) { session.abortTransaction(); } ``` --- ### **使用建议** 1. **优先使用现代语法** - 弃用旧命令如 `save()`, `count()`,改用 `insertOne()`, `countDocuments()` 等 2. **性能优化** - 高频查询字段必须创建索引 - 避免全集合扫描(如无条件的 `find()`) 3. **安全规范** - 生产环境务必启用身份验证(`--auth` 启动参数) - 限制用户权限至最小必要范围 --- 如需更详细的命令说明,请参考 [MongoDB 官方文档](https://www.mongodb.com/docs/)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值