一、Mongo的安装和使用
先下载安装Mongo到官网下载对应的32为的版本 然后安装
找到官网的下载中心
https://www.mongodb.com/download-center#community
找到 Previous Releases
找到对应window Vista 32-bit withoutSSL i386
注意:32-bit builds are limited to around 2GB of data. In general you should use the 64 bit builds. See here for more information.
在C盘目录下面建立data目录
data目录下面建立db和log: 2个目录----目录一定要先创建
注意实际安装测试时需要建立2个对应的目录结构
1.windows32位系统组装安装自启动代码
以管理员的方式运行下面的命令
如果安装失败可以查看日志信息 查看安装的错误信息
mongod --dbpath="C:\data\db" --logpath="C:\data\log\log.txt" --serviceName MongoDB --journal --storageEngine=mmapv1 --install
注意:以管理员方式启动
/*
--dapath 指定数据的文件存储路径
--logpath 数据的操作日志
--serviceName 服务名称 建议MongoDB
--serviceDisplayName window组件的显示名称 可以跟服务名称不一致
指定在32位下面的存储格式
--journal --storageEngine=mmapv1 --install
卸载:
mongod --remove --serviceName "H512MongoDB" --journal
*/
mongod --dbpath="C:\h512database\db" --logpath="C:\h512database\log\log.txt" --serviceName H512MongoDB --serviceDisplayName H512MongoDB --journal --storageEngine=mmapv1 --install
// 32位系统 必须设置存储格式为 mmapv1
// 63位系统 不需要设置
64位安装
mongod --dbpath="C:\Program Files\MongoDB\data\db" --logpath="C:\Program Files\MongoDB\data\db\log.txt" --serviceName MongoDB
2.然后启动
必须在管理员的权限下启动
net start MongoDB
net stop MongoDB
3.删除对应的服务 修改最后一个为--remove就可以了
mongod --dbpath="C:\data\db" --logpath="C:\data\log\log.txt" --serviceName MongoDB --journal --storageEngine=mmapv1 --remove
4.输入mongo(数据库的连接工具) 连接Mongo数据库查看能否连接成功
show dbs //查看对应的所有的数据库
use admin //客户端 客户端 手动关闭数据库
db.shutdownServer();
二 、Mongo的基本使用
Mongo的介绍 NOSQL数据库类型
show dbs // 查看已经存在的集合数据
db.help() // 查看数据库的所有相关的方法
db.stats() // 查看数据库的状态
db.version() // 查看当前db的版本
db.getMongo() // 查看当前db的链接地址
use blog // 先切换到对应的数据集合类
// 切换数据库
// 数据库有多个 每次只能操作一个数据库
// 数据库里面的是集合 理解为表
show collections // 查看集合中的所有的数据信息
db.users.insert({"book_id":1});
db.users.find().count();
db.users.find({"book_id":1});
//这个主键的id 是自动生成的数据
db.users.find({"_id":ObjectId("58bcd55fbcbc58571cb74cd6")});
db.userInfo.find({name: /mongo/});
//相当于%%select * from userInfo where name like ‘%mongo%’;
db.userInfo.find({name: /^mongo/});
//select * from userInfo where name like ‘mongo%’;
// update 第一个是条件 第二个是要修改的值
db.users.update({"book_id":1},{$set:{"book_id":8}});
//执行后显示: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
db.users.update({"book_id":1},{$set:{"book_di":10}},{"multi":true});
// 注意update 和 save的区别
update有3个参数
save方法只有一个参数 并且 如果更新的键没有 则会替换整个字段 会丢失一些字段信息
db.user.save({"_id":ObjectId("58bce7acbcbc58571cb74cd9"),"book_name":"ios"});
// 删除 remove方法只有一个条件
db.user.insert({"username":"david"});
db.user.insert({"username":"david"});
db.user.insert({"username":"david"});
先执行前面的插入3条数据 然后在执行后面的删除 删除前面插入的3条数据信息
db.user.remove({"username":"david"});
// 第2个参数默认为false 如果设置为true 则只删除 查询到的第一条记录信息
// 第2个参数 表示是否是单行删除 默认为false 表示不是单行删除
db.user.remove({"username":"david"},true);
/*
find:查询到的集合信息
{ "_id" : ObjectId("58bce5e3bcbc58571cb74cd8"), "book_id" : 999, "book_name" : "html5" }
{ "_id" : ObjectId("58bce7acbcbc58571cb74cd9"), "book_name" : "ios" }
{ "_id" : ObjectId("58bceadfbcbc58571cb74cde"), "username" : "david" }
{ "_id" : ObjectId("58bceadfbcbc58571cb74cdf"), "username" : "david" }
{ "_id" : ObjectId("58bceae1bcbc58571cb74ce0"), "username" : "david" }
*/
// 空条件 表示删除集合中所有的元素信息
// 类似清空表中的数据 但是表不删除 mongodb中叫索引(即表索引)不删除
db.user.remove({});
// 删除整个集合 类似删除表的操作
// 删除整个文档 和 文档对应的索引 即表名称
db.user.drop();
db.dropDatabase(); 删除当前所在的数据库信息
Mac下面 mongo命令行窗口中 输入cls 清除屏幕的信息
// 全部替换为后面的值
db.testuser.update({username:"tom"},{"username":"jack","age":20,sex:1});
// 设置数据字段中的属性值 自增显示
db.testuser.update({"username":"tom"},{$inc:{age:1}});
// 删除某个字段
db.testuser.update({username:"tom"},{$unset:{sex:1}});
// 可以向记录中添加或修改 一个值 不存在就添加 存在就修改
db.testuser.update({username:"jack"},{$set:{like:[]}});
// pull 向数组中删除一条记录
db.testuser.update({"username":"jack"},{"$pull":{like:["develpment"]}})
// push 向数组中添加一条记录
db.testuser.update({"username":"jack"},{"$push":{like:["develpment"]}})
// push 向数组中添加多条信息
db.testuser.update({"username":"jack"},{$pushAll:{like:["sport","computer"]}})
// 删除数组中的最后一个值
db.testuser.update({"username":"jack"},{$pop:{like:1}})
// 删除数组中的第一个值
db.testuser.update({"username":"jack"},{$pop:{like:-1}})
db.testuser.remove({});
db.testuser.remove({username:"david"});
db.testuser.drop();
三、数据库的备份和恢复
// 从制度的位置恢复数据库
mongodump -d blog -o /testData
mongorestore -d blogtest /testData/blog