内容简介:启动服务端,启动服务的命令的文件是:mongod.exe将会输出服务端相关信息,包括版本,数据库所在路径,监听端口号,数据库大小等等、看到这个说明你已经成功了,默认端口是27017如果有数据说明安装成功
启动服务端,启动服务的命令的文件是:mongod.exe
- 1.打开命令行(win+R),输入mongod
- 2.会发现服务并没有启动,报exception(异常)
- 3.可以在c盘新建data\db文件夹,或者需要新建db文件夹作为数据库存放路径,在
C:\Program Files\MongoDB
下新建一个db文件夹,win+R,输入cmd,然后用cd命令进入C:\Program Files\MongoDB
:\bin目录下,执行如下命令:C:\Program Files\MongoDB\bin>mongod.exe --dbpath C:\Program Files\MongoDB\db
将会输出服务端相关信息,包括版本,数据库所在路径,监听端口号,数据库大小等等、看到这个说明你已经成功了,默认端口是27017
- 4.服务端开启后,可以用命令行链接服务端,链接文件是mongo.ext,不要关闭服务端Dos,重新打开一个dos窗口,输入mongo,链接后,输入以下指令:
查看存在数据库命令:mongo show dbs 查看数据库版本命令:mongo db.version() 复制代码
如果有数据说明安装成功
mongoDB常用指令
mongo shell 如果以前接触过数据库一定知道每个数据库都有自己独特的命令,MSSQL和 MYsql 用的都是 Sql 命令,MongoDB的操作命令就是前端最熟悉的JavaScript命令。看到这里作为前端你一定会小激动一下,这对前端来说那是极好的。
操作前你需要打开Mongo服务器和链接到服务器-也就是我们的mongod命令和mongo命令
var x='Hello World' print(x) 复制代码
这里的输出命令不是console.log,而是print
输入函数,输入一半时会有3个点表示没输完的语句可以继续输
MongoDB的存储结构
以前我们的关系型数据库的数据结构都是顶层是库,库下面是表,表下面是数据。但是 MongoDB 有所不同,库下面是集合,集合下面是文件,可以看下面这张图进行了解一下。
mongoddb(非关系型数据库) | mysql(关系型数据库) |
---|---|
文件(document) | 行(row) |
集合(collections) | 表(table) |
数据库(databases) | 数据库(databases) |
- show dbs :显示已有数据库,如果你刚安装好,会默认有local、admin(config),这是MongoDB的默认数据库,我们在新建库时是不允许起这些名称的。
- use admin: 进入数据,也可以理解成为使用数据库。成功会显示:switched to db admin。
- show collections: 显示数据库中的集合(关系型中叫表,我们要逐渐熟悉)。 db:显示当前位置,也就是你当前使用的数据库名称,这个命令算是最常用的,因为你在作任何操作的时候都要先查看一下自己所在的库,以免造成操作错误。
- use db(建立数据库):use不仅可以进入一个数据库,如果你敲入的库不存在,它还可以帮你建立一个库。但是在没有集合前,它还是默认为空。
- db.集合.insert( ):新建数据集合和插入文件(数据),当集合没有时,这时候就可以新建一个集合,并向里边插入数据。Demo:db.user.insert({“name”:”jspang”})
- db.集合.find( ):查询所有数据,这条命令会列出集合下的所有数据,可以看到MongoDB是自动给我们加入了索引值的。Demo:db.user.find()
- db.集合.findOne( ):查询第一个文件数据,这里需要注意的,所有MongoDB的组合单词都使用首字母小写的驼峰式写法。
- db.集合.update({查询},{修改}):修改文件数据,第一个是查询条件,第二个是要修改成的值。这里注意的是可以多加文件数据项的,比如下面的例子。
- db.集合.remove(条件):删除文件数据,注意的是要跟一个条件。Demo:db.user.remove({“name”:”jspang”})
- db.集合.drop( ):删除整个集合,这个在实际工作中一定要谨慎使用,如果是程序,一定要二次确认。
- db.dropDatabase( ):删除整个数据库,在删除库时,一定要先进入数据库,然后再删除。实际工作中这个基本不用,实际工作可定需要保留数据和痕迹的。
在js中写mongodb
eg 新建一个login.js文件
var userName = 'niuxiaoling'; // 声明登录名 var timeStamp = Date.parse(new Date()); //时间戳 var jsonDatebase = { 'loginName':userName, "loginTime":timeStamp } var db = connect('log');//use log db.login.insert(jsonDatebase); // login集合 print('log print success'); 复制代码
执行login.js 直接DOS中 mongo login.js
在操作数据库时要注意: 第一个是快速存储能力 第二个是迅速查询能力
批量插入数据
db.test.insert([ {"_id":1}, {"_id":2}, {"_id":3} ]) 复制代码
注意一次插入不要超过48M,向.zip和大图片什么的尽量用静态存储,MongoDB存储静态路径就好,这也算是一个规则。
循环插入数据
var startTime = (new Date()).getTime(); //得到开始时间 var db = connect('log'); //链接数据库 //开始循环 for(let i=0;i<1000;i++){ db.test.insert({num:i}); } var runTime = (new Date()).getTime()-startTime;//计算时间差 print ('This run this is:'+runTime+'ms');//打印出来 507ms 复制代码
批量插入数据
var startTime = (new Date()).getTime(); var db = connect('log'); var tempArray = [] //声明一个数组 for(let i=0;i<1000;i++){ //循环向数组中放入值 tempArray.push({num:i}); } db.test.insert(tempArray) //批量一次插入 var runTime = (new Date()).getTime()-startTime; print ('This run this is:'+runTime+'ms'); // 17ms 复制代码
修改数据的错误点 插入数据文件demo02.js
var db = connect('log') var webwork = { name: 'xiaoling', age: 18, sex: 0, skill: { skillOne: 'html', skillTwo: 'javascript', skillThree: 'node' } } var webwork1 = { name: 'list', age: 18, sex: 0, skill: { skillOne: 'html', skillTwo: 'javascript', skillThree: 'node' } } var webwork2 = { name: 'wangwu', age: 18, sex: 0, skill: { skillOne: 'html', skillTwo: 'javascript', skillThree: 'node' } } var workmoney = [webwork, webwork1, webwork2] db.workspace.insert(workmoney) print('The data was inserted successfully.') 复制代码
错误点:只update修改项
正确的:demo03.js可以声明一个变量,然后把要改变数据的全部信息放入变量,最后执行修改操作。
var db = connect('log') var webwork2 = { name: 'chenming', age: 18, sex: 0, skill: { skillOne: 'html', skillTwo: 'javascript', skillThree: 'node' } } db.workspace.update({ name: 'xiaoling' }, webwork2) print('[update] the data was updated successfully') 复制代码
需要删除(db.workmate.drop())表中的数据,因为MinJie这个用户已经不在数据库中了,然后重新使用load方法载入插入数据再进行修改。然后执行 db.workmate.drop() load('./demo02.js') load('./demo03.js')
update修改器
- $set 用来修改一个指定的键值(key)
dbd .workmate.update({"name":"MinJie"},{"$set":{sex:2,age:21}}) 复制代码
- 修改嵌套内容(内嵌文档)
db.workmate.update({"name":"MinJie"},{"$set":{"skill.skillThree":'word'}}) 复制代码
- $unset用于将key值删除
db.workmate.update({"name":"MinJie"},{$unset:{"age":''}}) 复制代码
- $inc对数字计算
db.workspace.update({name: 'list'}, {$inc: {age: -2}}) 复制代码
- multi: true对所有的数据插入一个健值,true,全部加,false只加一条
db.workspace.update({}, {$set: {birth: ''}}, {multi: true}) 复制代码
- upsert也有两个值:true代表没有就添加,false代表没有不添加(默认值)。
db.workspace.update({name: 'xiaoling'}, {age: 15, sex: 1}, {upsert: true}) 复制代码
我就是这么一遍遍的测试的
下载好的界面
以上所述就是小编给大家介绍的《mongoDB初识一二三》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。