乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Mongodb 1.00 基础
2017-08-28 12:33:48
93
0
0
admin
> 安装单节点的mongodb 以及简单的增删改查 和一些小技巧 #安装 ``` cd mongo/ tar -xzvf /tmp/mongodb-linux-x86_64-rhel62-3.4.4.tgz mkdir data cd mongodb-linux-x86_64-rhel62-3.4.4/ nohup ./bin/mongod --dbpath /leo/mongo/data/ & ``` ##通过config文件启动 ``` cd mongo/ tar -xzvf /tmp/mongodb-linux-x86_64-rhel62-3.4.4.tgz mkdir data cd mongodb-linux-x86_64-rhel62-3.4.4/ mkdir log ``` cat cfg ``` systemLog: destination: file path: /leo/mongo/mongodb-linux-x86_64-rhel62-3.4.4/log/mongod.log processManagement: fork: true net: port: 27017 storage: dbPath: /leo/mongo/data/ ``` ``` ./bin/mongod --config ./cfg ``` *** #增删改查 ##创建/选择数据库 *只有在真有数据插入后才会建库* ``` > use db_name #函数写法 > the_db = db.getSisterDB("db_name") ``` ##列出数据库 ``` > show dbs #函数写法 > db.getMongo().getDBs() ``` ##插入数据,顺便建表 ``` #插一条 > db.collection_name.insert({"a":1,"b":2}) #插多条 > db.collection_name.insert([{"a":1,"b":2},{"a":2,"b":3}]) #查看表 > show collections #查看表的函数写法 > db.getCollectionNames() ``` ##查询数据 ``` #普通查询 > db.collection_name.find() > db.collection_name.find().limit(2) #只列出两条 > db.collection_name.find().skip(1) #跳过一条 > db.collection_name.find().sort({"key":1}) #按照key 升序,-1是降序 #只查一条 > db.collection_name.findOne() ``` ##更新数据 ``` > db.collection_name.update({"_id" : ObjectId("xxx")},{"xx":123}) //只修改第一个匹配到的文档 //这个方式会更新整个文档,通常你更希望使用修改器$set //db.collection_name.update({},{"$set":{"key":"value"}},{multi:true}) //如果要更新的文档不存在,是不是创建它 //db.collection_name.update({},{"$set":{"key":"value"}},{upsert:true}) ``` ##删除数据 ``` > db.collection_name.remove({"_id" : ObjectId("xxx")}) ``` ##删除表 ``` > db.collection_name.drop() ``` ##删除库 ``` > use db_name > db.dropDatabase() ``` *** #其它小技巧 ##编写javascript时连敲三次回车相当于bash 的ctrl C *** ##在mongo shell 调用bash ``` > run("ls","/") ``` *** ##prompt 可以赋值一个function,相当于BASH的PS1 ``` > prompt = function () { ... if(typeof db == 'undefined') ... { return '(nodb) '+(new Date())+'>';} ... ... return db+' '+(new Date())+'>'; ... } test Wed Sep 06 2017 06:24:13 GMT-0800> test Wed Sep 06 2017 06:24:17 GMT-0800>use leo switched to db leo leo Wed Sep 06 2017 06:24:20 GMT-0800> ``` *** ##在BASH上调用mongo SHELL ``` [leo@test1 bin]$ ./mongo --eval 'result=db.getMongo().getDBs();printjson(result)' MongoDB shell version v3.4.4 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.4 { "databases" : [ { "name" : "abc", "sizeOnDisk" : 65536, "empty" : false }, { "name" : "admin", "sizeOnDisk" : 49152, "empty" : false }, { "name" : "local", "sizeOnDisk" : 73728, "empty" : false } ], "totalSize" : 188416, "ok" : 1 } ``` *** ##~/.mongorc.js 相当于bashrc *** ##MONGO SHELL 编辑器 ``` > EDITOR='/usr/bin/vim' /usr/bin/vim > edit a ``` ***
上一篇:
Mongodb 0.0 介绍
下一篇:
Mongodb 1.01 ObjectID
文档导航