摘要:执行时的临时目录。在如果没有开启异常机后重启必须执行操作。系统同步刷新磁盘的时间单位为秒默认是秒。这么多参数全面写在命令行中则容易杂乱而不好管理。可选指定封顶集合允许在文件的最大数量。
我的博客
mongod参数说明参数 | 说明 |
---|---|
dbpath | 数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的 mongod.lock 也保存在此目录中。 |
logpath | 错误日志文件 |
logappend | 错误日志采用追加模式,默认是覆写模式。 |
bind_ip | 对外服务的绑定ip,一般设置为空,及绑定在本机所有可用 ip 上,如有需要可以多带带指定。 |
port | 对外服务端口。Web 管理端口在这个 port 的基础上+1000。 |
fork | 以后台 Daemon 形式运行服务 |
maxConns | 最大连接数 |
directoryperdb | 每个 db 存放在多带带的目录中,建议设置该参数。与 MySQL 的独立表空间类似。 |
repairpath | 执行 repair 时的临时目录。在如果没有开启 journal,异常 down 机后重启,必须执行 repair 操作。 |
syncdelay | 系统同步刷新磁盘的时间,单位为秒,默认是 60 秒。 |
这么多参数,全面写在命令行中则容易杂乱而不好管理。因此,mongod 支持将参数写入到 一个配置文本文件中,然后通过 config 参数来引用此配置文件:
./mongod --config /etc/mongo.cnf数据库常用命令
# 创建数据库, 如果有则进入, 如果没有则创建 use demo_database; # 查看所有db show dbs; # 从指定主机上克隆数据库 db.cloneDatabase(“127.0.0.1”); # 修复当前db db.repairDatabase(); # 显示当前db的状态 db.stats(); # 查看当前db的链接机器地址 db.getMongo(); # 删除当前使用的db db.dropDatabase(); # 查看当前db的版本 db.version(); # 关闭数据库连接 shutdownServer();集合(Collection)常用命令
集合相对于关系型数据库中的表。
// 创建一个集合, 创建成功会显示{“ok”:1} db.createCollection(“account”, {size: 20, capped: 5, max: 100}); // 判断集合是否为定容量 db.collName.isCapped(); // 查询集合 db.getCollection("account"); // 获取当前db下的所有集合 db.getCollectionNames(); // 或者 show collections(); // 显示当前db所有聚集索引的状态 db.printCollectionStats();
其中创建集合的语法为:
db.createCollection(name, options)
name为集合的名字,options为参数(可选),指定有关内存大小和索引选项,options有以下几个选项:
字段 | 类型 | 描述 |
---|---|---|
capped | Boolean | (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。 |
autoIndexID | Boolean | (可选)如果为true,自动创建索引_id字段的默认值是false。 |
size | Number | (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。 |
max | Number | (可选)指定封顶集合允许在文件的最大数量。 |
# 添加用户 db.addUser("userName"); db.addUser("userName", "pwd123", true); // 用户名、密码、是否只读 # 数据库认证、安全模式 db.auth("userName", "123123"); # 查看所有的用户 show users; # 删除用户 db.removeUser("userName");添加、删除、修改相关
# 添加数据 db.account.save({"name": "xigua", age: "23", "location": "China SH"}); # 修改数据 ab.account.update({"name": "xigua"}, {$set: {"age": 24}}); // 相当于update account set age=24 where name=xigua # 删除数据 db.account.remove({"name": 22});查询相关
# 我们先插入一些数据以供查询 for (var i=1; i<100; i++) db.account.insert({"name": i, "age": i}); # 查询所有记录,默认每页显示20条记录 db.account.find(); // account为集合名,相比于关系型数据库来说,相当于select * from account # 设置查询时每页显示的记录数 DBQuery.shellBatchSize= 50; // 输入it 显示更多 # 过滤name字段相同的数据 db.account.distinct("name"); // 相比于关系型数据库来说,相当于select distinct name form account # 查询name=88的记录 db.account.find({"name": 88}); // 相当于select * from account where name = 88 # 查询name>88的记录 db.account.find({"name": {$gt: 22}}); // 相当于select * from account where name > 88 # 查询name<88的记录 db.account.find({"name": {$lt: 22}}); // 相当于select * from account where name < 88 # 大于 $gt # 小于 $lt # 大于等于 $gte # 小于等于 $lte # 查询name中包含数字9的数据 db.account.find({"name": /9/}); # 查询指定列的数据 db.account.find({}, {name: 1, age: 1}); // 相当于select name, age from account # 按照name升序排序 db.account.find().sort({name: 1}); # 按照name降序排序 db.account.find().sort({name: -1}); # 查询name = 1, age = 1的数据 db.account.find({name: 1, age: 1}); // 相当于select * from account where name=1 and age=1; # 查询前五条数据 db.account.find().limit(5); // 相当于select top 5 * from account # 查询20条以后的数据 db.account.find().skip(10); # or db.account.find({$or: [{age: 10}, {age: 20}]}); // 相当于select * from account where age=10 or age=20; # 查询第一条数据 db.account.findOne(); # 查询某个结果集的记录条数 db.account.find().count(); // 相当于select count(*) from account # 查询所有结果中不包含name的记录 db.account.find({name: {$exists: false}}); # 查询所有结果中对2取模为0的数据 db.account.find({num: {$mode: [2, 0]}}); # 查询结果中num值不等于3的数据 db.account.find({num: {$ne: 3}}) # 包含$in db.table.find({num: {$in: [1, 3, 5]}}) # 不包含$nin db.table.find({num: {$nin: [1, 3, 5]}}) # $size 数组元素个数 # 对于{name: "David", age: 26, favorite_number: [ 6, 7, 9 ] }记录 匹配 db.users.find({favorite_number: {$size: 3}}); # 不匹配 db.users.find({favorite_number: {$size: 2}}); # 正则匹配 db.account.find({name: {$not: /^T.*/}}); # 查看记录数 db.table.find().count(); # 从第 3 条记录开始,返回 5 条记录(limit 3, 5) db.users.find().skip(3).limit(5);简单的语句块操作
# 打印 print("Hello MongoDB!"); # 将一个对象转换成json tojson(new Object()); tojson(new Object("a")); # 循环添加数据 for (var i=1; i<100; i++) { db.account.insert({"name": i, "age": i}); } # forEach迭代循环 db.users.find().forEach(printjson);其他
# 查询之前的错误信息 db.getPrevError(); # 清楚错误信息 db.resetError();
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/18880.html
摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...
摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...
摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...
阅读 3338·2021-11-22 15:22
阅读 2862·2021-10-12 10:12
阅读 2156·2021-08-21 14:10
阅读 3822·2021-08-19 11:13
阅读 2841·2019-08-30 15:43
阅读 3223·2019-08-29 16:52
阅读 438·2019-08-29 16:41
阅读 1427·2019-08-29 12:53