MongoDB
相关网站
中文网 http://www.mongodb.org.cn/
Windows系统各个64位版本下载地址 http://dl.mongodb.org/dl/win32/x86_64
Linux下载 https://www.mongodb.org/dl/linux/x86_64
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
##启动
./bin/mongod --dbpath /usr/local/mongodb/database --logpath /usr/local/mongodb/log --port 27017 --fork
##参数解释:
--dbpath 数据存储目录
--logpath 日志存储文件名
--port 运行端口(默认27017)
--fork 后台进程运行
./bin/mongod --help
[root@centos mongodb]# ./bin/mongod --dbpath /usr/local/mongodb/database --logpath /usr/local/mongodb/log/log --port 27017 --fork
about to fork child process, waiting until server is ready for connections.
forked process: 7095
child process started successfully, parent exiting
[root@centos mongodb]# ./bin/mongo #连接
##查看数据库
show dbs
##选择数据库
use local
## 查看表
show tables
##帮助
db.help()
dbcreateClollection('user')
MongoDB操作
##Windows下
配置环境变量
MongoDB设置为系统服务
创建配置文件mongod.cfg,内容如下
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
#创建系统服务
D:\soft\MongoDB\Server\3.2\bin\mongod.exe --config "D:\soft\MongoDB\Server\3.2\mongod.cfg" --install
C:\Windows\system32>net start MongoDB #启动服务
基本概念
数据库 database
集合 collection
文档 document
命令
show dbs
use 数据库名
db #当前数据库
#插入
db.stus.insert({name:"孙悟空",age:500,gender:"男"})
#查询
db.<collection>.find()
---------------------------------------------------
use test;
show collection ;
db.stus.find();
/*
插入数据
db.<collection>.insert()
插入数据 没有指定文本_id属性,则数据库会自动为文档插入id
*/
db.stus.insert({"_id":2,name:"猪八戒",age:499,gender:"男"})
db.stus.insert(
[{name:"猪八戒",age:499,gender:"男"},
{name:"沙和尚",age:499,gender:"男"},
{name:"白骨精",age:499,gender:"男"}
]);
/*
id 可以自己指定
*/
ObjectId();
/*
find 返回的是一个数组
*/
db.stus.find()[1].name;
db.stus.find({"_id":1});
/*
统计结果数量
*/
db.stus.find().count();
/*
update 是替换对象
如果是修改而不是替换 要使用修改操作符
update 默认只是修改一个
multi:true 表示修改多个 默认修改一个
*/
db.stus.update({_id:1},{age:25});
db.stus.find({_id:2});
//替换set 删除unset
db.stus.update({_id:2},{
$set:{
age:25
}}
);
db.stus.find( );
db.stus.update({name:"猪八戒"},
{
$set:{address:"高老庄"}
},{
multi:true
}
);
/* 删除(多个),条件和
*/
db.stus.remove({"name" : "白骨精"});
//有参数表示只是删除一个
db.stus.remove({"name" : "白骨精"},true);
//如果传递空对象,表示清空集合 效率低
db.stus.remove();
db.stus.drop()//效率高
show dbs;
//删除数据库
db.dropDatabase();
----------------------------------------------
基本操作
db.dropDatabase();
//1.进入my_test数据库
use my_test;
show dbs;
//2.向数据库的user集合中插入一个文档
db.users.insert({
username:"sunwukong"
});
//3.查询user集合中的文档
db.users.find();
//4.向数据库的user集合中插入一个文档
db.users.insert({
username:"tangseng"
});
//5.查询数据库user集合中的文档
//6.统计数据库user集合中的文档数量
db.users.count();
//7.查询数据库user集合中username为sunwukong的文档
db.users.find({username:"sunwukong"});
//8.向数据库user集合中的username为sunwukong的文档,添加一个address属性,属性值为huaguoshan
db.users.update({"username":"sunwukong"},
{$set:{address:"huagsssuoshan"}}
);
//9.使用{username:"tangseng"} 替换 username 为 zhubajie的文档
db.users.find();
db.users.replaceOne({"username":"zhubajie"},{username:"tangseng"} );
//10.删除username为sunwukong的文档的address属性
db.users.update({"username":"sunwukong"},{$unset:{address :1}});
//11.向username为sunwukong的文档中,添加一个hobby:{cities:["beijing","shanghai","shenzhen"] , movies:["sanguo","hero"]}
db.users.update({"username":"sunwukong"},{$set:{ hobby:{cities:["beijing","shanghai","shenzhen"] , movies:["sanguo","hero"]}}} );
// 内嵌文档
//12.向username为tangseng的文档中,添加一个hobby:{movies:["A Chinese Odyssey","King of comedy"]}
db.users.update({"username":"tangseng"},{$set:{ hobby:{movies:["A Chinese Odyssey","King of comedy"]}}});
//13.查询喜欢电影hero的文档 支持内嵌文档,此时属性名必须使用引号
db.users.find({'hobby.movies' : "hero"});
//14.向tangseng中添加一个新的电影Interstellar
db.users.update({"username":"tangseng"},{$push:{'hobby.movies':'Interstellar'}});
//15.删除喜欢beijing的用户
db.users.remove({'hobby.cities' : "beijing"});
db.users.find();
//16.删除user集合
db.users.drop();
show dbs;
//17.向numbers中插入20000条数据
for(var i =1; i<2000 ; i++){
db.numbers.insert({num:i});
};
db.numbers.find();
db.numbers.remove({});
var arr=[];
for(var i =1; i<2000 ; i++){
arr.push({num:i});
};
db.numbers.insert(arr);
//18.查询numbers中num为500的文档 $get大于等于
db.numbers.find({num:{$eq:500}});
//19.查询numbers中num大于5000的文档
db.numbers.find({num:{$gt:500}});
//20.查询numbers中num小于30的文档
db.numbers.find({num:{$lt:500}});
//21.查询numbers中num大于40小于50的文档
db.numbers.find({num:{$gt:40,$lt:50}});
//22.查询numbers中num大于19996的文档
db.numbers.find({num:{$lte:10}});
//23.查看numbers集合中的前10条数据
db.numbers.find({num:{$lte:10}});
db.numbers.find().limit(10);
//24.查看numbers集合中的第11条到20条数据 skip((页码-1)*显示条数)
db.numbers.find().skip(10).limit(10);
//25.查看numbers集合中的第21条到30条数据
db.numbers.find().skip(20).limit(10);
//26.将dept和emp集合导入到数据库中
//27.查询工资小于2000的员工
db.emp.find({sal:{$lt:2000}});
db.dept.find();
//28.查询工资在1000-2000之间的员工
db.emp.find({sal:{$gt:1000,$lt:2000}});
//29.查询工资小于1000或大于2500的员工
db.emp.find({$or:[{sal:{$lt:1000}},{sal:{$gt:2500}}]});
//30.查询财务部的所有员工
deptno=db.dept.find({dname:"财务部"})[0].deptno;
db.emp.find({depno:deptno});
//31.查询销售部的所有员工
//32.查询所有mgr为7698的所有员工
//33.为所有薪资低于1000的员工增加工资400元
db.emp.updateMany({sal:{$lte:1000}},
{$inc:{sal:400}}
);
//按照工资排序 1 表示升序 2 表示降序
db.emp.find().sort({sal:1});
// 1表示显示 0 表示不显示
db.emp.find({},{ename:1,_id:0});
学习视频 搜集与网络 链接:https://pan.baidu.com/s/1yFAoxIrCFMVF1ogrx6xKfw 密码:400x
删除这两个地方的东西就好了
运行 -->regedit
HKEY_CURRENT_USER\Software\NoSQL Manager Group
删除该文件夹
C:\ProgramData\NoSQL Manager Group
NoSQL Manager for Cassand
重启,继续免费试用30天