MongoDB的下载:
MongoDB的下载地址
下载zip文件后,解压,进入其bin目录如图:
此时双击mongod.exe该文件,MongoDB启动失败,该文件会运行闪退;原因启动的时候没有创建/data文件夹(指定一个数据存放的目录,默认是/data);
这时需要创建该文件夹,我是在bin的同目录下创建的data文件夹(个人认为在任何地方创建data文件夹都是可以的,启动的时候指定就可以了),然后打开cmd命令窗口,进入到mongodb\bin目录下输入:mongod --dbpath D:…\data;如下图:
此时,MongoDB就启动成功了,如图MongoDB的端口号为27017;你可以通过浏览器访问http://127.0.0.1:27017此链接,页面会显示如图:
则表示启动成功!!!
MongoDB简单使用
MongoDB服务启动后,进入bin目录,执行mongo.exe,
表示MongoDB客户端开启成功;
控制台使用use baike,切换到baike数据库(MongoDB如果检测baike不存在,会自动创建);然后使用db.createUser来创建一个新用户
>use baike
>db.createUser({user:"zp",pwd:"zp123",roles:[{role:"readWrite",db:"baike"}]})
user:用户的名称
pwd:用户的密码
roles:用户的角色
readWrite:数据库读写权限
db:限定的数据库是baike
成功创建zp用户后,重启MongoDB客户端,输入如下命令,登录zp用户
> use baike
> db.auth("zp","zp123")
控制台输出1,表示登录成功!
以下为Mongodb常用的增删改查的命令:
> db.baike.insert({_id:"springboot",desc:"描述",tag:[1,2],comment:{good:123,bad:22}})
> db.baike.insert({desc:"插入指定数据类型", "age": NumberInt(1)})
>
> db.baike.find()
> db.baike.find({_id:"springboot"})
> db.baike.find({"comment.good":{$gt:120}})
> db.baike.find({"comment.good":{$gt:100},"comment.good":{$lt:1000}})
> db.baike.find({$or:[{_id:"springboot"},{_id:"springboot2"}]})
> db.baike.find({"_id":{$in:["springboot","springboot2"]}})
> db.baike.find({"desc":/.*描述.*/})
>
> db.baike.updateOne({"_id":"springboot3"},{$set:{"desc":"描述3"}})
> db.baike.replaceOne({"_id":"springboot3"},{$set:"desc":"描述temp"})
> db.baike.updateOne({"_id":{$in:["springboot","springboot2"]}},{$set:{"desc":"描述1"}})
> db.baike.updateMany({"_id":{$in:["springboot","springboot2"]}},{$set:{"desc":"描述3"}})
>
> db.baike.deleteOne({"_id":"springboot4"})
> db.baike.deleteMany({})
备注:
1、updateOne是更新;replaceOne是替换。两者都只替换匹配的第一条记录。
2、MongoDB中更新数据为:
2.1 db.collection.updateOne(<filter>, <update>, <options>)
2.2 db.collection.updateMany(<filter>, <update>, <options>)
2.3 db.collection.replaceOne(<filter>, <replacement>, <options>)
options为可选属性,options有以下属性可以控制更新特性:
①upsert,默认为false,如果设置为true,相当于oracle中的merge属性(如果数据库中存在数据就 update,如果不存在就insert);
②writeConcern:
w,
默认是{w:0},表示数据写入后不需要数据库发生确认(ACK),这样性能高;
{w:1},数据写入到库就会向客户端发生确认;{w:“majority”},数据写入到所有节点后向客户端发生确认。
wtimeout,
当w大于1的时候,设置一个等待时间,单位毫秒,如果超时的话,即使数据成功写入,也会向客户端发生错误信息。
3、常用的查询比较如下:
①$gt 相当于“>”,列如"comment.good":{$gt: 1000};
②$gte 相当于“>=”,列如"comment.good":{$gte: 1000};
③$lt 相当于“<”,列如"comment.good":{$lt: 1000};
④$lte 相当于“<=”,列如"comment.good":{$lte: 1000};
⑤$eq 相当于“==”,列如"comment.good":{$eq: 1000}或者{“comment.good”: 1000};
⑥$ne 相当于“!=”,列如"comment.good":{$ne: 1000};
⑦$in 相当于in,列如"_id": {$in: [“springboot”, “springboot2”]},查找所有包含“springboot”和“springboot2”的_id;
⑧$nin 相当于not in。
参考文献:
关于启动MongDB的mongod.exe文件闪退的问题
MongoDB在Windows下的环境配置和使用
MongoDB修改数据类型
疑问:
1.MongoDB如何设置用户名和密码?