MongoDB是文档数据库, 存储的是bson(json的二进制数据)通过js引擎操作数据的,这是之前的学习记录,有时候容易忘记,在此简单做个记录存档一下。

一、MongoDB入门常见的操作命令

mongo命令是链接我们的数据库。

1、查看当前的所有数据库

show dbs
2、查看当前库下面的集合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 collections
6、插入数据
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的文档都会被修改掉。

2)、
如果没有匹配到的行,可以直插入行{upsert:true}
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 操作

查询表达式的使用可以查看:

MongoDB学习记录—查询表达式的基本操作(二)