MongoDB配置教程

Wesley13
• 阅读 657

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结束了,这个任务也不会被结束,而是继续留在后台执行。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这