MongoDB是文档数据库, 存储的是bson(json的二进制数据)通过js引擎操作数据的,这是之前的学习记录,有时候容易忘记,在此简单做个记录存档一下。
一、MongoDB入门常见的操作命令
mongo命令是链接我们的数据库。
1、查看当前的所有数据库
show dbs2、查看当前库下面的集合Collections
show tables比如查看myTest 下面的所有集合:先use myTest,然后 show tales
3、如何创建和使用一个数据库?
use 可以隐式创建一个不存在的数据。
use tableName 获取切换到创建好的数据库(tableName是数据库名字),也是选择库 。
4、创建集合(Collections)
1)、我们可以切换到use myTest,然后创建一个集合
db.createCollection("collectionName")比如我们在myTest数据库中创建一个user集合, db.createCollection(“user”)。
2)、也允许隐式创建
db.user.insert(document)
5、显示所有集合
show collections6、插入数据
db.user.insert(document) document为json格式数据文档对象比如给user集合中插入数据
var yuan = { id:1, name:'yuan', age:30 } db.user.insert(yuan)然后使用db.user.find(); 可以查看集合user的数据了。
7、删除集合
比如我们要删除user集合可以使用
db.user.drop()出现true说明删除成功了。
8、删除某个数据库
db.dropDatabase()比如我们要删除数据库myTest,先user myTest,然后db.dropDatabase()就可以了。
9、查看帮助命令
db.help()二、MongoDB的增删改查
1、增 insert
还是以上面的例子,先use myTest,有一个集合是user。上面第6条插入数据就是增。
db.user.insert(yuan) //user是集合2、删 remove
db.user.remove(查询表达式,选项)
查询表达式:
1、查询表达式是一个json对象
2、不写表达式,删除所有 —– db.user.remove({});
3、删除表达式匹配的那一行
justOne – (可选)如果设置为true或1,则只删除一个文档。
例如:
db.user.remove({'id':100})表示删除user集合中id属性值为100的用户
db.user.remove({'sex':1}, true)只删除匹配到的第一行。
3、改 update
db.user.update(查询表达式,新值,选项)意思就是:
1、要改谁?-查询表达式
2、改成什么样的?-新值
3、选项-操作参数,可选
db.user.update({name:'yuan'},{name:'laoyuan'})如果我们这样写的话,是旧文档直接被新文档替换了,而不是修改其中的某个值了。所以想要修改某个属性值要用$set:
db.user.update({'name':'yuan'},{$set:{'name':'laoyuan'}})说明:
$set-修改某个列的值-也就是某个属性的值 $unset-删除某个列的值 $rename-重命名某个列的值 $inc-增长某个列的值 $setOnInsert-当upsert为true时,并且发生insert时,可以补充的字段
Option的作用:
{upsert:true/false} {upsert:true} -- 是指没有匹配的行,则直接插入该行 {multi:true/false} multi: 是指修改多行(即使查询表达式查看到多行,默认也只改1行,如果想改多行,可以用此选项)1)、默认只修改一行,如果想改多行,可以加操作参数 {multi:true}
db.user.update({'name':'yuan'},{$set:{'name':'laoyuan'}},{multi:true})
user中所有name=yuan的文档都会被修改掉。
db.user.update({'name':'yuan'},{$set:{'name':'laoyuan'}},{upsert:true})3)、$setOnInsert 可以补充的字段
db.user.update({'name':'yuan777'},{$set:{'name':'laoyuan'},$setOnInsert:{'age':100}},{upsert:true})这样age字段会当补充字段插入进去了。
4)、$inc-增长某个列的值
var yuan = [{ id:4, name:'yuan222', age:80 }, { id:5, name:'yuan', age:70 }] db.user.update({'id':4},{$rename:{'name':'yuan333'},$inc:{'age':90}})id为4的age会变成90
4、查 find findOne
find(查询表达式,查询的列)
db.user.find(表达式,{列1:1,列2:1});
比如:db.user.find({},{'name':'yuan','money':8800000},_id:0); _id:0-不查询id属性,如果是age:1 查询年龄属性查询所所有文档和所有内容:
db.user.find({},{'name':'yuan'});查询所有name为的yuan的数据,_id属性默认总是查出来
更多文档:MongoDB CRUD 操作
查询表达式的使用可以查看: