mongodb的常用命令,mongodb启动命令参数

  mongodb的常用命令,mongodb启动命令参数

  成功启动mongoDB后,打开命令行窗口,进入Mongo,就可以进行一些数据库操作了。进入help可以看到基本的操作命令,只是MongoDB没有创建数据库的命令,但是有类似的命令。

  mongod . exe-数据库的服务器端,相当于mysql的mysqld命令,启动服务器端。

  mongo . exe——数据库的客户端,相当于mysql的mysql命令,打开管理控制台。

  Mongo是一个交互式的js shell,它提供了一个强大的js环境,为DBA提供了管理MongoDB的接口,为开发者提供了查询MongoDB数据的接口。通过mongo shell与MongoDB交互,查询和修改MongoDB数据库,管理MongoDB数据库,维护MongoDB副本集和碎片集群,是一个非常强大的工具。

  成功启动mongoDB后,打开命令行窗口,进入Mongo,就可以进行一些数据库操作了。

  进入help查看基本操作命令:

  显示数据库:显示数据库列表

  显示集合:显示当前数据库中的集合(类似于关系数据库中的表)。

  显示用户:显示用户

  使用db name:切换当前数据库,这与MS-SQL中的意思相同。

  Db.help():显示数据库操作命令,其中包含许多命令。

  Db.foo.help():显示设置操作命令,也有很多命令。foo指的是当前数据库中一个名为foo的集合,但它不是一个真正的命令。

  Db.foo.find():对当前数据库中的foo集合执行数据查找(因为没有条件,所以将列出所有数据)

  Db.foo.find( {a: 1}):查找当前数据库中的foo集合,前提是数据中有一个名为a的属性,a的值为1。

  MongoDB没有创建数据库的命令,但是有类似的命令。

  比如要创建一个“myTest”数据库,首先运行use myTest命令,然后做一些操作(比如db.createCollection(user )),这样就可以创建一个名为“myTest”的数据库。

  常见数据库命令

  1.帮助查看命令提示符

  帮助

  db . help();

  db . your coll . help();

  db.youColl.find()。help();

  RS . help();

  2.切换/创建数据库

  使用yourDB创建表时,会自动创建当前数据库。

  3.查询所有数据库。

  显示dbs

  4.删除当前使用的数据库

  db . drop database();

  5.从指定的主机克隆数据库。

  db . clone database(" 127 . 0 . 0 . 1 ");将指定机器上数据库的数据克隆到当前数据库。

  6.将指定的数据库数据从指定的计算机复制到数据库。

  db.copyDatabase(mydb , temp , 127 . 0 . 0 . 1 );将本机的mydb数据复制到临时数据库中。

  7.修复当前数据库

  db . repair database();

  8.检查当前使用的数据库。

  db . getname();

  db;dbgetname方法与dbgetname方法效果相同,可以查询当前使用的数据库。

  9.显示当前数据库状态

  db . stats();

  10.当前数据库版本

  db . version();

  1.检查当前数据库的链接机器地址。

  db . get mongo();

  集合集合

  1.创建聚集集(表)

  db.createCollection("collName ",{size: 20,capped: 5,max:100 });

  2.获取具有指定名称的聚合集(表)。

  db . get collection( account );

  3.获取当前数据库的所有聚集集

  db . getcollectionnames();

  4.显示当前数据库的所有聚集索引的状态

  db . printcollectionstats();

  用户相关性

  1.添加用户。

  db . adduser( name );

  db.addUser(userName , pwd123 ,true);添加用户,设置密码,只读。

  2.数据库认证和安全模式

  db.auth(用户名, 123123 );

  3.显示所有当前用户。

  显示用户;

  4.删除用户。

  db.removeUser(用户名);

  其他的

  1.查询以前的错误信息。

  db . getpreverror();

  2.清除错误记录

  db . reset error();

  查看聚合集的基本信息。

  1.查看帮助db . your coll . help();

  2.查询当前集合中的数据个数db . your coll . count();

  3.检查数据空间大小db . userinfo . datasize();

  4.获取当前聚合集所在的db db . userinfo . getdb();

  5.获取当前聚合状态db . userinfo . stats();

  6.获取聚合总大小db . userinfo . total size();

  7.聚合集db.userInfo.storageSize()的存储空间大小;

  8.分片版本信息db.userInfo.getShardVersion()

  9、聚集集合重命名db。用户信息。重命名集合(“用户”);将用户信息重命名为用户

  10、删除当前聚集集合db。用户信息。drop();

  聚集集合查询

  1、查询所有记录

  db。用户信息。find();

  相当于:从用户信息中选择*

  默认每页显示20条记录,当显示不下的情况下,可以用它迭代命令查询下一页数据。注意:键入它命令不能带";"

  但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize=50这样每页就显示50条记录了。

  2、查询去掉后的当前聚集集合中的某列的重复数据

  db。用户信息。distinct(“名称”);

  会过滤掉名字中的相同数据

  相当于:从用户信息中选择地区名称;

  3、查询年龄=22岁的记录

  db。用户信息。find({ age :22 });

  相当于:从用户信息中选择*其中年龄=22;

  4、查询22岁的记录

  db。用户信息。查找({ age:{ $ gt:22 } });

  相当于:从用户信息中选择*凡年龄22;

  5、查询22岁的记录

  db。用户信息。查找({ age:{ $ lt:22 } });

  相当于:从用户信息中选择*凡年龄22;

  6、查询年龄=25岁的记录

  db。用户信息。查找({年龄:{ $ GTE:25 } });

  相当于:从用户信息中选择*其中年龄=25;

  7、查询年龄=25岁的记录

  db。用户信息。find({ age:{ $ LTE:25 } });

  8、查询年龄=23岁并且年龄=26岁

  db.userInfo.find({age: {$gte: 23,$ LTE:26 } });

  9、查询名字中包含蒙戈的数据

  db。用户信息。查找({ name:/mongo/});

  //相当于%%

  select * from userInfo,其中名称类似于" % mongo % ";

  10、查询名字中以蒙戈开头的

  db。用户信息。查找({姓名:/^mongo/});

  select * from userInfo,其中名称类似于“mongo %”;

  11、查询指定列姓名、年龄数据

  db.userInfo.find({},{姓名:1,年龄:1 });

  相当于:从用户信息中选择姓名、年龄;

  当然名字也可以用真实的或假的,当用图雷的情况下河名称:1效果一样,如果用错误的就是排除姓名,显示名字以外的列信息。

  12、查询指定列姓名、年龄数据,25岁

  db。用户信息。查找({年龄:{ $ gt:25 } },{姓名:1,年龄:1 });

  相当于:从用户信息中选择姓名、年龄,其中年龄为25岁;

  13、按照年龄排序

  升序:db.userInfo.find().排序({年龄:1 });

  降序:db.userInfo.find().排序({年龄:-1 });

  14、查询姓名张三,年龄22岁的数据

  db。用户信息。查找({姓名:张三,年龄:22 });

  相当于:从用户信息中选择*其中姓名=张三,年龄= 22 ;

  15、查询前5条数据

  db.userInfo.find().极限(5);

  相当于:从用户信息中选择top 5 *;

  16、查询10条以后的数据

  db.userInfo.find().跳过(10);

  相当于:从用户信息中选择*其中编号不在(

  从用户信息中选择前10名*

  );

  17、查询在5-10之间的数据

  db.userInfo.find().限制(10)。跳过(5);

  可用于分页,限制是页面大小,跳过是第几页*页面大小

  18、或者与查询

  db。用户信息。find({ $ or:[{年龄:22 },{年龄:25 }]});

  相当于:从用户信息中选择*其中年龄=22或年龄=25;

  19、查询第一条数据

  db。用户信息。findone();

  相当于:从用户信息中选择top 1 *;

  db.userInfo.find().极限(1);

  20、查询某个结果集的记录条数

  db。用户信息。找到({年龄:{ $ GTE:25 } }).count();

  相当于:从userInfo中选择count(*),其中年龄=20岁

  21、按照某列进行排序

  db。用户信息。查找({ sex:{ $ exists:true } }).count();

  相当于:从用户信息中选择计数(性别);

  索引

  1、创建索引

  db。用户信息。确保索引({ name:1 });

  db。用户信息。确保索引({ name:1,ts:-1 });

  2、查询当前聚集集合所有索引

  db。用户信息。getindexes();

  3、查看总索引记录大小

  db。用户信息。total indexsize();

  4、读取当前集合的所有指数信息

  db。用户。reindex();

  5、删除指定索引

  db。用户。删除索引( name _ 1 );

  6、删除所有索引索引

  db。用户。删除索引();

  修改、添加、删除集合数据

  1、添加

  db。用户。保存({姓名:张三,年龄:25,性别:真});

  添加的数据的数据列,没有固定,根据添加的数据为准

  2、修改

  db.users.update({age: 25},{$set: {name: changeName}},false,true);

  相当于:更新用户集name=changeName ,其中年龄=25岁

  db.users.update({name: Lisi},{$inc: {age: 50}},false,true);

  相当于:更新用户set age=age50其中name= Lisi

  db.users.update({name: Lisi},{$inc: {age: 50},$set: {name: hoho}},false,true);

  相当于:更新用户集age=age50,name= hoho 其中name= Lisi

  3.删除

  db . users . remove({ age:132 });

  4.查询、修改和删除

  db.users.findAndModify({

  查询:{年龄:{$gte: 25}},

  排序:{年龄:-1},

  更新:{$set: {name: a2},$inc: {age: 2}},

  移除:真

  });

  db . run command({ findandmodify: users ,

  查询:{年龄:{$gte: 25}},

  排序:{年龄:-1},

  更新:{$set: {name: a2},$inc: {age: 2}},

  移除:真

  });

  语句块操作

  1.简单的Hello World

  print(Hello World!);

  这个方法调用print函数并写出“Hello World!”直接。效果是一样的;

  2.将对象转换为json

  to JSON(new Object());

  tojson(新对象( a ));

  3.循环添加数据。

  for(var I=0;i 30i ) {

  .db . users . save({姓名: u_ i,年龄:22 i,性别:I % 2 });

  .};

  这样30条数据循环相加,括号也可以省略。

  for(var I=0;i 30I)db . users . save({姓名: u_ i,年龄:22 i,性别:I % 2 });

  也有可能。使用db.users.find()查询时,在一页无法显示多条数据的情况下,可以使用它在下一页查看信息;

  4.查找光标查询

  var cursor=db . users . find();

  while (cursor.hasNext()) {

  print JSON(cursor . next());

  }

  这样,所有的用户信息都可以被查询,同样可以被写入。

  var cursor=db . users . find();

  while(cursor . has next()){ print JSON(cursor . next);}

  也可以省略{}符号。

  5.forEach迭代循环

  db.users.find()。forEach(print JSON);

  必须在forEach中传递一个函数来处理每次迭代的数据信息。

  6.将查找光标视为数组。

  var cursor=db . users . find();

  光标[4];

  获取下标索引为4的数据。

  既然可以当作数组来处理,就可以得到它的长度:cursor . length();或者cursor . count();

  这样,我们也可以在一个循环中显示数据。

  for (var i=0,len=c . length();我lenI)print JSON(c[I]);

  7.将查找光标转换成数组。

  var arr=db.users.find()。to array();

  print JSON(arr[2]);

  使用toArray方法将其转换为数组。

  8.定制我们自己的查询结果

  仅显示年龄=28岁的数据和年龄列。

  db.users.find({age: {$lte: 28}},{age: 1})。forEach(print JSON);

  db.users.find({age: {$lte: 28}},{age: true})。forEach(print JSON);

  排除的年龄列

  db.users.find({age: {$lte: 28}},{age: false})。forEach(print JSON);

  9.forEach传递函数显示信息

  db.things.find({x:4})。forEach(function(x){ print(tojson(x));});

  用mongod启动数据库进程。这些参数解释如下:

  - dbpath指定数据库的目录。

  - port指定数据库的端口,默认情况下为27017。

  -bind _ IP绑定IP

  - directoryperdb为每个数据库创建一个独立的子目录

  - logpath指定日志存储目录。

  - logappend指定日志生成方法(追加/覆盖)

  - pidfilepath指定进程文件路径,如果未指定,则不会生成任何进程。

  -密钥文件群集模式的密钥标识

  - cpu定期显示cpu和IO利用率。

  -日志启用日志记录

  - ipv6启用ipv6支持。

  - nssize指定的大小。ns文件,以MB为单位,默认值为16M,最大值为2GB。

  - maxConns最大并发连接数

  - notablescan不允许表扫描。

  - quota限制每个数据库的文件数量,默认情况下为8个。

  - quotaFiles每个数据库中的文件数量,与-quota参数匹配。

  - noprealloc关闭数据文件的预分配功能。

  

mongod 命令常用参数

  1、常用参数

  Mongod是MongoDB系统的主守护进程,用于处理数据请求、访问数据和执行后台管理操作。它必须在访问MongoDB数据库之前启动。

  启动mongod时,常用的参数有:

  - dbpath db_path:存储MongoDB数据文件的目录。

  - directoryperdb:指定每个数据库存储在一个目录中,该目录位于- dbpath指定的目录中,每个子目录对应一个数据库名称。使用单独的目录存储每个数据库的数据。这些目录位于- dbpath目录下,每个子目录名称都对应于数据库名称。

  -logpathlog _ path:指定mongod记录的文件。

  - fork:以后台守护程序的形式运行服务。

  -日志:启动日志功能,保存操作日志,减少单机故障恢复时间。

  - config(或-f)config_file_path:配置文件,用于指定运行时选项。

  - bind_ip ip address:指定外部服务的绑定ip地址。

  -港口港口:对外服务窗口

  - auth:启用身份验证以验证用户权限控制。

  - syncdelayvalue:系统刷新磁盘的时间,单位为秒,默认为60s。

  - replSet setname:将mongod作为副本集启动,副本集的标识为setname。

  2.1通过命令启动,默认dbpath为C:datadb

  mongod - dbpath=C:datadb

  2.2从配置文档开始。

  将mongod的命令参数写入配置文档,从参数-f开始。

  mongod-f C: data db MongoDB _ config . config

  2.3以守护模式启动

  当启动MongoDB的进程关闭时,MongoDB也会关闭。只需使用- fork参数启动MongoDB作为后台守护进程。

  蒙哥德福克

  3.检查mongod的启动参数

  db.serverCmdLineOpts()

  

在启动mongo shell时,常用的参数是:

  - nodb:防止mongo在启动时连接到数据库实例;

  -portport:指定mongo连接Mongo监听的TCP端口,默认端口值为27017;

  - host hostname:指定mongod运行的服务器。如果没有指定这个参数,mongo会尝试连接本地运行的mongod实例(localhost);

  Db address:指定mongo所连接的数据库。

  - username/-u username和- password/-p password:指定访问MongoDB数据库的帐户和密码。只有通过认证,用户才能访问数据库;

  - authenticationDatabase dbname:指定在其中创建用户的数据库。创建用户时,数据库是认证数据库;用户的。

mongodb的常用命令,mongodb启动命令参数