MongoDB基本命令用
- 格式:docx
- 大小:23.55 KB
- 文档页数:8
MongoDB常⽤数据库命令⼤全⼀、MongoDB 数据库常⽤操作命令1、Help查看命令提⽰helpdb.help();db.yourColl.help();2、切换/创建数据库use raykaeso;当创建⼀个集合(table)的时候会⾃动创建当前数据库3、查询所有数据库show dbs;4、删除当前使⽤数据库db.dropDatabase();5、从指定主机上克隆数据库db.cloneDatabase(“127.0.0.1”);将指定机器上的数据库的数据克隆到当前数据库6、从指定的机器上复制指定数据库数据到某个数据库db.copyDatabase(“mydb”, “temp”, “127.0.0.1”);将本机的mydb的数据复制到temp数据库中7、修复当前数据库db.repairDatabase();8、查看当前使⽤的数据库db.getName()/db;9、显⽰当前db状态db.stats();10、当前db版本db.version();11、查看当前db的连接服务器机器地址db.getMongo();12、查询之前的错误信息和清除db.getPrevError();db.resetError();⼆、MongoDB Collection聚集集合1、创建⼀个聚集集合(table)db.createCollection(“collName”, {size: 20, capped: 5, max: 100});//创建成功会显⽰{“ok”:1} //判断集合是否为定容量db.collName.isCapped();2、得到指定名称的聚集集合(table)db.getCollection(“account”);3、得到当前db的所有聚集集合db.getCollectionNames();4、显⽰当前db所有聚集索引的状态db.printCollectionStats();5、查询当前集合的数据条数db.yourColl.count();6、查看当前集合数据空间⼤⼩db.yourColl.dataSize();7、得到当前聚集集合所在的dbdb.yourColl.getDB();8、得到当前聚集的状态db.coll.stats();9、得到聚集集合总⼤⼩db.coll.totalSize();10、聚集集合储存空间⼤⼩db.coll.storageSize();11、聚集集合重命名db.coll.renameCollection(“ray”);将coll重命名为ray12、删除当前聚集集合db.coll.drop();三、MongoDB⽤户相关1、添加⼀个⽤户(创建)db.createUser({user: 'username', pwd: 'xxxx', roles: [{role: 'readWrite', db: 'dbname'}]});添加⽤户、设置密码、是否只读2、数据库认证、安全模式(登录)db.auth(“ray”, “123456”);3、显⽰当前所有⽤户show users;4、删除⽤户db.removeUser(“userName”);四、MongoDB聚集集合查询1、查询所有记录erInfo.find();相当于:select* from userInfo;默认每页显⽰20条记录,当显⽰不下的情况下,可以⽤it迭代命令查询下⼀页数据。
Mongodb启动命令mongod参数说明1. MongoDB的获取和安装(2)解压 mongodb-win32-i386-1.8.1(3)创建数据存放⽂件夹,mongodb默认的数据⽬录 /data/dbC:/> mkdir /dataC:/> mkdir /data/db(4)运⾏ MongoDBmongod.exe - 数据库的服务器端,相当于mysql的 mysqld命令,启动服务器端mongo.exe - 数据库的客户端,相当于mysql的mysql命令,打开管理控制台启动服务mongod.exe --dbpath F:/DataBase/MongoDB/db/--dbpath 数据⽂件存放路径--port 数据服务端⼝C:/> cd /my_mongo_dir/binC:/my_mongo_dir/bin > mongod //启动mongod 服务器,默认的数据库路径 /data/db,端⼝27071启动客户端mongo.exe cclovecclove 所连接的数据库名称C:/> cd /my_mongo_dir/binC:/my_mongo_dir/bin> mongo2. 熟悉MongoDB的数据操作语句,类sql数据库操作语法mongo --pathdb.AddUser(username,password) 添加⽤户db.auth(usrename,password) 设置数据库连接验证db.cloneDataBase(fromhost) 从⽬标服务器克隆⼀个数据库mandHelp(name) returns the help for the commanddb.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-sidedb.getCollection(cname) 取得⼀个数据集合,同⽤法:db['cname'] or amedb.getCollenctionNames() 取得所有数据集合的名称列表db.getLastError() 返回最后⼀个错误的提⽰消息db.getLastErrorObj() 返回最后⼀个错误的对象db.getMongo() 取得当前服务器的连接对象get the server connection objectdb.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 onewdb.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=alldb.shutdownServer() 关闭当前服务程序db.version() 返回当前程序的版本信息数据集(表)操作语法db.linlin.find({id:10}) 返回linlin数据集ID=10的数据集db.linlin.find({id:10}).count() 返回linlin数据集ID=10的数据总数db.linlin.find({id:10}).limit(2) 返回linlin数据集ID=10的数据集从第⼆条开始的数据集db.linlin.find({id:10}).skip(8) 返回linlin数据集ID=10的数据集从0到第⼋条的数据集db.linlin.find({id:10}).limit(2).skip(8) 返回linlin数据集ID=1=的数据集从第⼆条到第⼋条的数据db.linlin.find({id:10}).sort() 返回linlin数据集ID=10的排序数据集db.linlin.findOne([query]) 返回符合条件的⼀条数据db.linlin.getDB() 返回此数据集所属的数据库名称db.linlin.getIndexes() 返回些数据集的索引信息db.linlin.group({key:...,initial:...,reduce:...[,cond:...]})db.linlin.mapReduce(mayFunction,reduceFunction,<optional params>)db.linlin.remove(query) 在数据集中删除⼀条数据db.linlin.renameCollection(newName) 重命名些数据集名称db.linlin.save(obj) 往数据集中插⼊⼀条数据db.linlin.stats() 返回此数据集的状态db.linlin.storageSize() 返回此数据集的存储⼤⼩db.linlin.totalIndexSize() 返回此数据集的索引⽂件⼤⼩db.linlin.totalSize() 返回些数据集的总⼤⼩db.linlin.update(query,object[,upsert_bool]) 在此数据集中更新⼀条数据db.linlin.validate() 验证此数据集db.linlin.getShardVersion() 返回数据集共享版本号db.linlin.find({'name':'foobar'}) select * from linlin where name='foobar'db.linlin.find() select * from linlindb.linlin.find({'ID':10}).count() select count(*) from linlin where ID=10db.linlin.find().skip(10).limit(20) 从查询结果的第⼗条开始读20条数据 select * from linlin limit 10,20 ----------mysqldb.linlin.find({'ID':{$in:[25,35,45]}}) select * from linlin where ID in (25,35,45)db.linlin.find().sort({'ID':-1}) select * from linlin order by ID descdb.linlin.distinct('name',{'ID':{$lt:20}}) select distinct(name) from linlin where ID<20db.linlin.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}}) select name,sum(marks) from linlin group by namedb.linlin.find('this.ID<20',{name:1}) select name from linlin where ID<20db.linlin.insert({'name':'foobar','age':25}) insert into linlin ('name','age') values('foobar',25)db.linlin.insert({'name':'foobar','age':25,'email':'cclove2@'})db.linlin.remove({}) delete * from linlindb.linlin.remove({'age':20}) delete linlin where age=20db.linlin.remove({'age':{$lt:20}}) delete linlin where age<20db.linlin.remove({'age':{$lte:20}}) delete linlin where age<=20db.linlin.remove({'age':{$gt:20}}) delete linlin where age>20db.linlin.remove({'age':{$gte:20}}) delete linlin where age>=20db.linlin.remove({'age':{$ne:20}}) delete linlin where age!=20db.linlin.update({'name':'foobar'},{$set:{'age':36}}) update linlin set age=36 where name='foobar'db.linlin.update({'name':'foobar'},{$inc:{'age':3}}) update linlin set age=age+3 where name='foobar'官⽅提供的操作语句对照表:上⾏:SQL 操作语句下⾏:Mongo 操作语句CREATE TABLE USERS (a Number, b Number)db.createCollection("mycoll")INSERT INTO USERS VALUES(1,1)ers.insert({a:1,b:1})SELECT a,b FROM usersers.find({}, {a:1,b:1})SELECT * FROM usersers.find()SELECT * FROM users WHERE age=33ers.find({age:33})SELECT a,b FROM users WHERE age=33ers.find({age:33}, {a:1,b:1})SELECT * FROM users WHERE age=33 ORDER BY name ers.find({age:33}).sort({name:1})SELECT * FROM users WHERE age>33ers.find({'age':{$gt:33}})})SELECT * FROM users WHERE age<33ers.find({'age':{$lt:33}})})SELECT * FROM users WHERE name LIKE "%Joe%" ers.find({name:/Joe/})SELECT * FROM users WHERE name LIKE "Joe%"ers.find({name:/^Joe/})SELECT * FROM users WHERE age>33 AND age<=40 ers.find({'age':{$gt:33,$lte:40}})})SELECT * FROM users ORDER BY name DESCers.find().sort({name:-1})SELECT * FROM users WHERE a=1 and b='q'ers.find({a:1,b:'q'})SELECT * FROM users LIMIT 10 SKIP 20ers.find().limit(10).skip(20)SELECT * FROM users WHERE a=1 or b=2ers.find( { $or : [ { a : 1 } , { b : 2 } ] } )SELECT * FROM users LIMIT 1ers.findOne()SELECT DISTINCT last_name FROM usersers.distinct('last_name')SELECT COUNT(*y) FROM usersers.count()SELECT COUNT(*y) FROM users where AGE > 30ers.find({age: {'$gt': 30}}).count()SELECT COUNT(AGE) from usersers.find({age: {'$exists': true}}).count()CREATE INDEX myindexname ON users(name)ers.ensureIndex({name:1})CREATE INDEX myindexname ON users(name,ts DESC) ers.ensureIndex({name:1,ts:-1})EXPLAIN SELECT * FROM users WHERE z=3ers.find({z:3}).explain()UPDATE users SET a=1 WHERE b='q'ers.update({b:'q'}, {$set:{a:1}}, false, true)UPDATE users SET a=a+2 WHERE b='q'ers.update({b:'q'}, {$inc:{a:2}}, false, true)DELETE FROM users WHERE z="abc"ers.remove({z:'abc'});Mongodb启动命令mongod参数说明--quiet# 安静输出--port arg# 指定服务端⼝号,默认端⼝27017--bind_ip arg# 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP--logpath arg# 指定MongoDB⽇志⽂件,注意是指定⽂件不是⽬录--logappend# 使⽤追加的⽅式写⽇志--pidfilepath arg# PID File 的完整路径,如果没有设置,则没有PID⽂件--keyFile arg# 集群的私钥的完整路径,只对于Replica Set 架构有效--unixSocketPrefix arg# UNIX域套接字替代⽬录,(默认为 /tmp)--fork# 以守护进程的⽅式运⾏MongoDB,创建服务器进程--auth# 启⽤验证--cpu# 定期显⽰CPU的CPU利⽤率和iowait--dbpath arg# 指定数据库路径--diaglog arg# diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads--directoryperdb# 设置每个数据库将被保存在⼀个单独的⽬录--journal# 启⽤⽇志选项,MongoDB的数据操作将会写⼊到journal⽂件夹的⽂件⾥--journalOptions arg# 启⽤⽇志诊断选项--ipv6# 启⽤IPv6选项--jsonp# 允许JSONP形式通过HTTP访问(有安全影响)--maxConns arg# 最⼤同时连接数默认2000--noauth# 不启⽤验证--nohttpinterface# 关闭http接⼝,默认关闭27018端⼝访问--noprealloc# 禁⽤数据⽂件预分配(往往影响性能)--noscripting# 禁⽤脚本引擎--notablescan# 不允许表扫描--nounixsocket# 禁⽤Unix套接字监听--nssize arg (=16)# 设置信数据库.ns⽂件⼤⼩(MB)--objcheck# 在收到客户数据,检查的有效性,--profile arg# 档案参数 0=off 1=slow, 2=all--quota# 限制每个数据库的⽂件数,设置默认为8--quotaFiles arg# number of files allower per db, requires --quota--rest# 开启简单的rest API--repair# 修复所有数据库run repair on all dbs--repairpath arg# 修复库⽣成的⽂件的⽬录,默认为⽬录名称dbpath--slowms arg (=100)# value of slow for profile and console log--smallfiles# 使⽤较⼩的默认⽂件--syncdelay arg (=60)# 数据写⼊磁盘的时间秒数(0=never,不推荐)--sysinfo# 打印⼀些诊断系统信息--upgrade# 如果需要升级数据库* Replicaton 参数--fastsync# 从⼀个dbpath⾥启⽤从库复制服务,该dbpath的数据库是主库的快照,可⽤于快速启⽤同步--autoresync# 如果从库与主库同步数据差得多,⾃动重新同步,--oplogSize arg# 设置oplog的⼤⼩(MB)* 主/从参数--master# 主库模式--slave# 从库模式--source arg# 从库端⼝号--only arg# 指定单⼀的数据库复制--slavedelay arg# 设置从库同步主库的延迟时间* Replica set(副本集)选项:--replSet arg# 设置副本集名称--replSet arg# 设置副本集名称* Sharding(分⽚)选项--configsvr# 声明这是⼀个集群的config服务,默认端⼝27019,默认⽬录/data/configdb--shardsvr# 声明这是⼀个集群的分⽚,默认端⼝27018--noMoveParanoia# 关闭偏执为moveChunk数据保存# 上述参数都可以写⼊ mongod.conf 配置⽂档⾥例如:dbpath = /data/mongodblogpath = /data/mongodb/mongodb.loglogappend = trueport = 27017fork = trueauth = truee.g:./mongod -shardsvr -replSet shard1 -port 16161 -dbpath /data/mongodb/data/shard1a -oplogSize 100 -logpath/data/mongodb/logs/shard1a.log -logappend -fork -rest----------------------------------------------------------------------------------MonoDB shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是⽤JavaScript脚本完成操作的。
MongoDB的基本使用方法MongoDB是一种NoSQL数据库,它非常适合处理大量结构松散的数据。
相较于传统的关系型数据库,它更加灵活,易于扩展。
本文将分为以下几个章节,介绍MongoDB的基本使用方法。
一、安装MongoDBMongoDB的官方网站提供了多种操作系统的安装包,用户可以选择适合自己的版本进行下载。
安装完成之后,需要配置MongoDB的环境变量,方便在终端中直接使用MongoDB命令。
二、启动MongoDB在终端输入"mongod"命令来启动MongoDB,并且默认会使用"/data/db"作为默认数据存储路径。
如果需要修改默认的数据存储路径,可以在启动时添加"--dbpath"参数,例如"mongod --dbpath/user/local/mongodb_data"。
三、连接MongoDB在终端中输入"mongo"命令可以进行与MongoDB的连接,并且默认连接到本地的MongoDB。
如果需要连接到远程的MongoDB,需要通过"mongo host:port"命令进行连接,其中host为MongoDB的IP地址,port为其端口号。
四、数据的增删改查MongoDB是一种文档型数据库,其数据以文档形式进行存储。
一条文档就是一个键值对集合,文档可以包含嵌套的文档,以及数组类型的值。
MongoDB提供了丰富的CRUD操作来实现数据的增删改查。
1.插入数据MongoDB中,可以通过insert()或者save()方法来插入一条数据。
例如:ers.insert({name:"Tom",age:18});或者:ers.save({_id:1,name:"Tom",age:18});其中,insert()和save()操作的区别在于,当插入数据的唯一标识已经存在时,insert()方法会直接报错,而save()方法则会将数据替换。
mongodb remove $nin用法全文共四篇示例,供读者参考第一篇示例:MongoDB是一款非关系型数据库管理系统,具有高性能、高可靠性和灵活性等优点,在大数据处理领域被广泛应用。
在MongoDB 中,nin是一个用法比较复杂的操作符,用来删除不符合指定条件的文档,本文将介绍nin的用法及其在删除操作中的应用。
一、nin的概念nin是MongoDB中的一个查询操作符,表示不等于指定值的条件。
nin常常与remove操作一起使用,用来删除不符合指定条件的文档。
在进行remove操作时,nin会对指定字段的值进行筛选,符合nin条件的文档将被删除。
二、nin的语法nin的语法格式如下:```{ field: { nin: [value1, value2, ...] } }```field表示待查询的字段名,nin表示不等于条件,[value1, value2, ...]表示不等于的值列表。
nin可以同时指定多个值,用逗号隔开。
三、nin的使用示例假设我们有一个名为students的集合,每个文档包含学生的姓名(name)和年龄(age)字段。
我们需要删除年龄不在18到25岁之间的学生信息,可以使用nin操作符实现:上述命令会删除students集合中所有年龄不在18到25岁之间的学生信息。
四、nin的注意事项在使用nin操作符时,需要注意以下几点:第二篇示例:MongoDB是一个开源的文档数据库,使用JSON式的文档存储数据,随着NoSQL数据库的流行,许多开发人员选择MongoDB作为数据存储的解决方案。
在处理数据时,有时需要根据一定的条件来删除文档,MongoDB提供了丰富的删除操作符,其中之一就是nin。
nin是MongoDB中的一个删除操作符,用来删除不在指定范围内的文档。
假设我们有一个学生信息的集合,其中包含了学生的姓名和年龄等信息,我们想要删除年龄不在18岁到30岁之间的学生信息,就可以使用nin操作符来实现。
请列举几个常用的mongodb操作命令
1. 插入数据命令
`db.collection.insertOne(document)`:向指定的集合中插入一个文档。
2. 查询数据命令
`db.collection.find(query, projection)`:查询指定集合中符合条件的文档。
3. 更新数据命令
`db.collection.updateOne(filter, update, options)`:更新指定集合中符合条件的第一个文档。
4. 删除数据命令
`db.collection.deleteOne(filter)`:删除指定集合中符合条件的第一个文档。
5. 创建索引命令
`db.collection.createIndex(keys, options)`:在指定集合中创建索引。
6. 聚合数据命令
`db.collection.aggregate(pipeline)`:执行聚合操作,根据指定条件对数据进行聚合操作。
7. 删除集合命令
`db.collection.drop()`:删除指定集合及其所有文档。
8. 查看集合命令
`show collections`:显示当前数据库中的所有集合。
9. 切换数据库命令
`use database`:切换当前使用的数据库到指定数据库。
10. 查看数据库列表命令
`show dbs`:显示当前MongoDB服务器上的所有数据库。
请注意,以上命令中的"collection"和"database"需要替换为实际使用的集合和数据库名称。
mongo的常用运维指令
- `use admin`:切换到管理员数据库。
- `db.runCommand({closeAllDatabases: 1})`:在线释放内存,该命令在 3.2 版本中已经被移除。
- `rs.status()`:查询复制集状态。
- `db.stats()`:查询指定库的状态,包括内存和磁盘的使用情况统计。
- `.stats()`:查询指定集合的具体信息。
- `db.version()`:查看数据库版本。
- `db.getCollectionNames()`:列出数据库中的所有集合。
- 集合数据的导出/导入。
- 数据库的备份与还原。
- `db.serverStatus()`:查看服务器状态。
这些指令可以帮助你管理 MongoDB 数据库,以确保其正常运行。
在使用这些指令时,请确保你对 MongoDB 有足够的了解,并严格按照官方文档中的指导进行操作。
mongo命令操作参数详解1. 基本参数-host:指定要连接的MongoDB服务器的地址。
-port:指定要连接的MongoDB服务器的端口。
-db:指定要连接的数据库。
-collection:指定要连接的集合。
-query:指定要执行的查询。
-limit:指定要返回的结果数量。
-skip:指定要跳过的结果数量。
-sort:指定要对结果进行排序的字段。
-projection:指定要返回的结果字段。
2. 高级参数--slaveOk:指定是否允许连接到从服务器。
--readConcern:指定读操作的读取关心级别。
--writeConcern:指定写操作的写入关心级别。
--journal:指定是否启用日志。
--auth:指定是否启用身份验证。
--username:指定要用于身份验证的用户名。
--password:指定要用于身份验证的密码。
3. 命令示例以下是一些常见的mongo命令示例:连接到MongoDB服务器:mongo --host localhost --port 27017列出所有数据库:show dbs切换到指定数据库:use test列出所有集合:show collections插入一条数据:db.collection.insertOne({name: "John Doe", age: 30})查询数据:db.collection.find({name: "John Doe"})更新数据:db.collection.updateOne({name: "John Doe"}, {set: {age: 31}}) 删除数据:db.collection.deleteOne({name: "John Doe"})。
mongo命令用法Mongo命令用法Mongo(全称为MongoDB)是一个基于分布式文件存储的开源数据库系统,它使用文档存储模式,能提供高性能、高可用性和可扩展性。
Mongo 命令用法是使用Mongo时需要掌握的一项基本技能。
本文将以中括号内的内容为主题,一步一步回答Mongo命令用法。
一、连接数据库要使用Mongo命令与Mongo数据库进行交互,首先需要连接到Mongo 数据库。
可以使用mongo命令来建立与Mongo服务器的连接。
1. 打开终端窗口。
2. 输入命令mongo,按回车键。
这样就成功连接到了Mongo数据库。
接下来,我们将逐步学习更多与Mongo数据库交互的命令。
二、数据库操作Mongo数据库可以包含多个数据库,每个数据库又可以包含多个集合(类似于关系型数据库中的表)。
下面是一些常用的数据库操作命令。
1. 显示所有的数据库:show dbs这个命令将显示Mongo数据库中所有的数据库。
2. 切换到指定的数据库:use [database_name]这个命令将切换到指定的数据库。
如果该数据库不存在,Mongo将自动创建一个新的数据库。
3. 显示当前所在的数据库:db这个命令将显示当前所在的数据库。
三、集合操作一个数据库可以包含多个集合,下面是一些常用的集合操作命令。
1. 显示所有的集合:show collections这个命令将显示当前数据库中所有的集合。
2. 创建一个集合:db.createCollection("[collection_name]")这个命令将在当前数据库中创建一个新的集合。
3. 删除一个集合:db.[collection_name].drop()这个命令将删除当前数据库中指定的集合。
四、文档操作在Mongo数据库中,数据以文档的形式进行存储。
每个文档都是一个键值对的有序集合。
1. 插入一个文档:db.[collection_name].insertOne({[field]: [value]})这个命令将在指定的集合中插入一个新的文档。
mgdb 的使用MongoDB 是一个流行的 NoSQL 数据库,它使用类似于 JSON 的 BSON 格式来存储数据。
以下是 MongoDB 的基本使用方法:1、安装和启动 MongoDB:首先,您需要在您的计算机上安装 MongoDB。
安装完成后,您可以在命令行中启动 MongoDB 服务。
2、连接到 MongoDB:要与 MongoDB 交互,您需要使用 MongoDB shell。
在命令行中输入 mongo,然后按 Enter 键。
这将连接到本地 MongoDB 服务器的默认端口(通常是 27017)。
3、创建数据库:在 MongoDB 中,可以使用 use 命令来创建数据库。
例如,要创建一个名为 mydatabase 的数据库,可以在 MongoDB shell 中输入 use mydatabase。
如果数据库不存在,MongoDB 将自动创建它。
4、插入数据:要在 MongoDB 中插入数据,可以使用 insert 命令。
例如,要在名为 mycollection 的集合中插入一个文档,可以使用以下命令:javascriptdb.mycollection.insert({name: "John", age: 30});5、查询数据:要查询数据,可以使用 find 命令。
例如,要查询 mycollection 集合中的所有文档,可以使用以下命令:javascriptdb.mycollection.find();6、更新数据:要更新数据,可以使用 update 命令。
例如,要将 mycollection 集合中名为 "John" 的文档的年龄更新为 31,可以使用以下命令:javascriptdb.mycollection.update({name: "John"}, {$set: {age: 31}});7、删除数据:要删除数据,可以使用 remove 或 drop 命令。
mongodb的常用命令MongoDB是一款非关系型数据库,采用BSON格式存储数据,具有高可扩展性和灵活性。
在使用MongoDB时,常用的命令有很多,下面就介绍一些常用的MongoDB命令。
1. show dbs该命令用于显示当前MongoDB实例中所有的数据库。
在MongoDB中,一个实例中可以包含多个数据库,每个数据库可以包含多个集合。
使用该命令可以查看当前实例中有哪些数据库。
2. use db_name该命令用于切换数据库。
在MongoDB中,切换数据库的方式与关系型数据库不同,需要使用use命令进行切换。
例如,use test可以切换到名为test的数据库。
3. show collections该命令用于显示当前数据库中所有的集合。
在MongoDB中,一个数据库可以包含多个集合,使用该命令可以查看当前数据库中有哪些集合。
4. db.collection.find()该命令用于查询集合中的数据。
在MongoDB中,可以使用db.collection.find()命令查询集合中的数据。
例如,ers.find()可以查询名为users的集合中的所有数据。
5. db.collection.insert()该命令用于向集合中插入数据。
在MongoDB中,可以使用db.collection.insert()命令向集合中插入数据。
例如,ers.insert({name:"Tom",age:20})可以向名为users的集合中插入一条数据,该数据包含name和age两个字段。
6. db.collection.update()该命令用于更新集合中的数据。
在MongoDB中,可以使用db.collection.update()命令更新集合中的数据。
例如,ers.update({name:"Tom"},{$set:{age:30}})可以将名为Tom 的用户的年龄更新为30岁。
MongoDB基本命令用成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。
输入help可以看到基本操作命令:show dbs:显示数据库列表show collections:显示当前数据库中的集合(类似关系数据库中的表)show users:显示用户use <db name>:切换当前数据库,这和MS-SQL里面的意思一样db.help():显示数据库操作命令,里面有很多的命令db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1MongoDB没有创建数据库的命令,但有类似的命令。
如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。
数据库常用命令1、Help查看命令提示helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help();2、切换/创建数据库use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库3、查询所有数据库show dbs;4、删除当前使用数据库db.dropDatabase();5、从指定主机上克隆数据库db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库6、从指定的机器上复制指定数据库数据到某个数据库db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中7、修复当前数据库db.repairDatabase();8、查看当前使用的数据库db.getName();db; db和getName方法是一样的效果,都可以查询当前使用的数据库9、显示当前db状态db.stats();10、当前db版本db.version();11、查看当前db的链接机器地址db.getMongo();Collection聚集集合1、创建一个聚集集合(table)db.createCollection(“collName”, {size: 20, capped: 5, max: 100});2、得到指定名称的聚集集合(table)db.getCollection("account");3、得到当前db的所有聚集集合db.getCollectionNames();4、显示当前db所有聚集索引的状态db.printCollectionStats();用户相关1、添加一个用户db.addUser("name");db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读2、数据库认证、安全模式db.auth("userName", "123123");3、显示当前所有用户show users;4、删除用户db.removeUser("userName");其他1、查询之前的错误信息db.getPrevError();2、清除错误记录db.resetError();查看聚集集合基本信息1、查看帮助db.yourColl.help();2、查询当前集合的数据条数db.yourColl.count();3、查看数据空间大小erInfo.dataSize();4、得到当前聚集集合所在的db erInfo.getDB();5、得到当前聚集的状态erInfo.stats();6、得到聚集集合总大小erInfo.totalSize();7、聚集集合储存空间大小erInfo.storageSize();8、Shard版本信息erInfo.getShardVersion()9、聚集集合重命名erInfo.renameCollection("users"); 将userInfo重命名为users10、删除当前聚集集合erInfo.drop();聚集集合查询1、查询所有记录erInfo.find();相当于:select* from userInfo;默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。
注意:键入it命令不能带“;”但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。
2、查询去掉后的当前聚集集合中的某列的重复数据erInfo.distinct("name");会过滤掉name中的相同数据相当于:select distict name from userInfo;3、查询age = 22的记录erInfo.find({"age": 22});相当于:select * from userInfo where age = 22;4、查询age > 22的记录erInfo.find({age: {$gt: 22}});相当于:select * from userInfo where age >22;5、查询age < 22的记录erInfo.find({age: {$lt: 22}});相当于:select * from userInfo where age <22;6、查询age >= 25的记录erInfo.find({age: {$gte: 25}});相当于:select * from userInfo where age >= 25;7、查询age <= 25的记录erInfo.find({age: {$lte: 25}});8、查询age >= 23 并且age <= 26erInfo.find({age: {$gte: 23, $lte: 26}});9、查询name中包含mongo的数据erInfo.find({name: /mongo/});//相当于%%select * from userInfo where name like ‘%mongo%’;10、查询name中以mongo开头的erInfo.find({name: /^mongo/});select * from userInfo where name like ‘mongo%’;11、查询指定列name、age数据erInfo.find({}, {name: 1, age: 1});相当于:select name, age from userInfo;当然name也可以用true或false,当用ture的情况下河name:1效果一样,如果用false 就是排除name,显示name以外的列信息。
12、查询指定列name、age数据, age > 25erInfo.find({age: {$gt: 25}}, {name: 1, age: 1});相当于:select name, age from userInfo where age >25;13、按照年龄排序升序:erInfo.find().sort({age: 1});降序:erInfo.find().sort({age: -1});14、查询name = zhangsan, age = 22的数据erInfo.find({name: 'zhangsan', age: 22});相当于:select * from userInfo where name = ‘zhangsan’ and age = ‘22’;15、查询前5条数据erInfo.find().limit(5);相当于:selecttop 5 * from userInfo;16、查询10条以后的数据erInfo.find().skip(10);相当于:select * from userInfo where id not in ( selecttop 10 * from userInfo);17、查询在5-10之间的数据erInfo.find().limit(10).skip(5);可用于分页,limit是pageSize,skip是第几页*pageSize18、or与查询erInfo.find({$or: [{age: 22}, {age: 25}]});相当于:select * from userInfo where age = 22 or age = 25;19、查询第一条数据erInfo.findOne();相当于:selecttop 1 * from userInfo;erInfo.find().limit(1);20、查询某个结果集的记录条数erInfo.find({age: {$gte: 25}}).count();相当于:select count(*) from userInfo where age >= 20;21、按照某列进行排序erInfo.find({sex: {$exists: true}}).count();相当于:select count(sex) from userInfo;索引1、创建索引erInfo.ensureIndex({name: 1});erInfo.ensureIndex({name: 1, ts: -1});2、查询当前聚集集合所有索引erInfo.getIndexes();3、查看总索引记录大小erInfo.totalIndexSize();4、读取当前集合的所有index信息ers.reIndex();5、删除指定索引ers.dropIndex("name_1");6、删除所有索引索引ers.dropIndexes();修改、添加、删除集合数据1、添加ers.save({name: ‘zhangsan’, age: 25, sex: true});添加的数据的数据列,没有固定,根据添加的数据为准2、修改ers.update({age: 25}, {$set: {name: 'changeName'}}, false, true);相当于:update users set name = ‘changeName’ where age = 25;ers.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);相当于:update users set age = age + 50 where name = ‘Lisi’;ers.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);相当于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;3、删除ers.remove({age: 132});4、查询修改删除ers.findAndModify({query: {age: {$gte: 25}},sort: {age: -1},update: {$set: {name: 'a2'}, $inc: {age: 2}},remove: true});db.runCommand({ findandmodify : "users",query: {age: {$gte: 25}},sort: {age: -1},update: {$set: {name: 'a2'}, $inc: {age: 2}},remove: true});update或remove其中一个是必须的参数; 其他参数可选。