关于MongoDB的背景和优点就不说了。mongo属于非关系型数据库,即NoSQL,可以简单理解为用键值对存储,当然特性有很多,对于初学者,理解这点和SQL的存储方式不同就行。
使用步骤
下载略过(本文是5.x版本),在盘根目录下新建data/db文件夹,作为存储空间。
进入解压后的bin文件夹,执行命令mongod --logpath "xxx" --dbpath "xxx" --install
第一次启动,要指定日志路径、存储路径等,关键的就这两个。
后面就不用加参数了,直接mongod即可启动服务。
启动成功后在服务中可以看到(windows)
进入MongoDB shell
这个shell还是用js写的,可以定义变量。
还是bin目录,mongo
即可进入
基本使用
建库 use xxx
查看当前库名 db
查看所有库名 show dbs
删除当前库 db.dropDatabase()
删除集合 db.collection.drop()
不需要新建表(MongoDB中叫做集合)
插入的数据叫做文档
插入数据 db.collection.insert(doc)
save也是插入,但略有不同,如果指定了_id,save类似于set xxx where id=_id,不指定两者是一样的
mongo命令行中可以定义变量 doc=(content)
更新数据
save是一种,更多是使用update
db.collection.update( criteria, objNew, upsert?, multi? )
criteria : update的查询条件,类似sql update查询内where后面的。
objNew : update的对象和一些更新的操作符(如inc...)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
删除数据
db.collection.remove( <query>, <justOne> )
2.6版本后使用
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。
测试了一下,5.0.5版本,两个都能用
删除所有 db.col.remove({}) 类似truncate
查看集合内容 db.collection.find()
美化内容 find().pretty()
findOne() 只返回符合条件的第一个文档
简单的条件设置
小于 $lt
大于 $gt
小等于 $lte
大等于 $gte
不等于 $ne
用法{ key: { $lt: value } }
,key < value
and在对象里面加键值对即可
or
db.col.find( { $or: [ {key1: value1}, {key2:value2} ] } )
or条件在数组里写