MongoDB是一个面向文档的非关系型数据库
教程 http://www.runoob.com/mongodb/mongodb-tutorial.html https://www.cnblogs.com/mfmdaoyou/p/7121547.html
1.配置环境变量
将解压目录加入PATH中
2.启动服务
mongod --dbpath D:\MongoDB\Data --bind_ip 端口 --auth
允许远程访问加上--bind_ip 端口
开启认证加上 --auth
2.启动客户端
mongo.exe
3.创建日志目录和文件目录
mkdir D:\MongoDB\Data
mkdir D:\MongoDB\log
4.创建配置文件
创建一个配置文件位于 C:\mongodb\mongod.cfg,其中指定 systemLog.path 和 storage.dbPath
systemLog:
destination: file
path: D:\MongoDB\log\mongod.log
storage:
dbPath: D:\MongoDB\Data
5.安装
mongod.exe --config "D:\MongoDB\mongod.cfg" --install
移除
mongod.exe --remove
启动
net start MongoDB
关闭
net stop MongoDB
6.创建用户
运行(我为了看着清晰使用了换行,实际不要换行,不过貌似也不支持多行编辑)
db.createUser(
{"user" : "test",
"pwd": "000000",
"roles" : [
{ role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
]
},
{ w: "majority" , wtimeout: 5000 }
)
7.远程连接
mongo -u test -p 000000 端口/admin
mongo 端口:27017
D:\mongodb-win32-x86_64-2008plus-ssl-4.0.3\bin\mongo.exe 端口:27017
无连接登录
mongo --nodb
conn=new Mongo("端口:27017")
db=conn.getDB("test")
8.CRUD
1.创建局部变量
post={"title":"My Blog Post",
"content":"Here's my blog post",
"date":new Date}
2.新增
db.blog.insert(post)
批量新增batchInsert,插入文档数组
db.foo.batchInsert([{"_id":0},{"_id":1},{"_id":2}])
3.查询
db.blog.find()
db.blog.find(post)
db.blog.findOne()
4.更新
post.comments=[]
db.blog.update({title:"My Blog Post"},post)
文档替换
5.删除
db.blog.remove({title:"My Blog Post"})
db.blog.drop 比remove快
9.主键
Objuectid是主键_id的默认类型,占用12字节的存储空间,是24个十六进制数字组成的字符串
10.使用命令行执行js脚本
mongo script1.js script2.js script3.js
指定主机端口运行,--quit不让shell打印输出
mongo --quit server-1:30000/foo script1.js script2.js script3.js
load("script1.js")
defineConnectTO.js
--------------
var connectTo=function(port,dbname){
if(!port){
port=27017;
}
if(!dbname){
dbname="test";
}
db=connect("localhost:"+port+"/"+dbname);
return db;
};
--------------
typeof connectTO
load("defineConnectTO.js")
启动时运行js
.mongorc.js
--------------
print("MongoDB Shell已启动");
EDITOR="C:\\Windows\\System32\\notepad.exe"
--------------
11.重写prompt
prompt=function(){
if(typeof db=='undefined'){
return '(nodb) '+(new Date())+">";
}
try{
db.runCommand({getLastError:1});
}
catch(e){
print(e);
}
return db+" "+(new Date())+">";
}
12.调用编辑器
EDITOR="D:\\安装目录\\Notepad++\\notepad++.exe"
windows中要加上\转义符,环境变量启动的调用的文件只能在c盘下
EDITOR="C:\\Windows\\System32\\notepad.exe"
EDITOR="C:\\Notepad++\\notepad++.exe"
var wap=db.books.findOne({title:"War and Peace"})
edit wap
13.关键字
在使用时,若是与关键字重名必须特殊处理
例:
db.version
会返回当前服务器版本
要访问version集合
db.getCollection("version")
对blog的每个变量进行迭代:
var collections=["posts","comments","authors"];
for(var i in collections){
print(db.blog[collections[i]]);
}
访问名字怪异变量
var name="@#&!"
db[name].find()
14.修改器
post={"url":"www.example.com",
"pageviews":52}
db.analytics.insert(post)
加法操作$inc
db.analytics.update({"url":"www.example.com"},{"$inc":{"pageviews":1}})
更新新增$set更新删除$unset
db.analytics.update({"url":"www.example.com"},{"$set":{"favorite book":"War and Peace"}})
db.analytics.update({"url":"www.example.com"},{"$set":{"favorite book":["War and Peace","fix"]}})
db.analytics.update({"url":"www.example.com"},{"$unset":{"favorite book":1}})
db.analytics.update({"url":"www.example.com"},{"$set":{"author.name":"joe schome"}})
数组修改器$push
-------------------------------------------------------------------------------------------------------------------------
linux下mongodb
编辑用户级配置文件 vim ~/.bashrc
添加配置信息: export PATH=/user/mongodb/mongodb-linux-x86_64-rhel70-4.0.4/bin:$PATH (中间那部分就是你的安装目录下的bin)
保存退出,刷新:source ~/.bashrc
-------------------------------------------------------
未设置环境变量需要加./或者使用绝对路径
cd /user/mongodb/mongodb-linux-x86_64-rhel70-4.0.4/bin
mongod --dbpath /data --bind_ip 11.11.156.248
mongo 11.11.156.248:27017
mongo -u test -p 000000 11.11.156.248/admin
---用户
use admin
db.createUser(
{"user" : "test",
"pwd": "000000",
"roles" : [
{ role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
]
},
{ w: "majority" , wtimeout: 5000 }
)
db.dropUser("test")
--------------
1. 在ssh shell中运行脚本,比如我运行一个批量下载脚本:
python download-app-annie.py
2. 按下ctrl-z中断脚本运行,此时系统提示:
^Z
[1]+ Stopped python download-app-annie.py
意思是编号为1的任务挂起了,[1]就是任务的编号,里面的数字也可能是2,3,4..
3. 输入命令:bg 1
这个命令将1号任务切换到后台执行
4. 输入命令:disown -h %1
这个命令的意思是将1号任务从当前shell的任务列表中移除,并且忽略HUP信号,这样,即使当前Shell结束了,这个任务也不会被结束,而是继续留在后台执行。