MongoDB常用语法

一、创建数据库

1、创建

语法:use database_name  (例:use reptile 创建一个名为’reptile’的数据库)如果存在该数据库则直接链接到这个数据库;

2、查看数据库

查看当前的数据库:

语法:db

查看所有数据库:

语法:show dbs

 

二、删除数据库/集合(表)

1、删除数据库

语法:db.dropDatabase() 删除当前数据库

2、删除数据库中的集合(表)

语法:db.集合(表名).drop()

 

三、创建集合(表)

1、创建集合

语法:db.createCollection(集合名,可选参数)

例:db.createCollection(‘article’) 创建名为article的集合

db.createCollection(‘article’,{capped : true, autoIndexId : true, size : 6142800, max : 10000})

注:创建固定集合article,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个

2、查询所有集合

语法:show tables

 

四、在集合中插入文档

1、插入文档用insert()

语法:db.集合名.insert({key1 : value1, key2 : value2, key3 : value3})

2、插入文档用save()

语法:db.集合名.save({key1 : value1, key2 : value2, key3 : value3})

注:不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

 

五、在集合中更新文档

1、用update()更新已存在的文档

语法:db.集合名.update(查询条件_类似sql中where后面的条件,更新的对象和操作_类似sql中set后面的内容,{upsert: <boolean>,multi: <boolean>,writeConcern:<boolean>})

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入;

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新;

writeConcern :可选,抛出异常的级别;

例:更新标题 db.集合名.update({‘title’ : ‘这是测试标题1’},{$set : {‘title’ : ‘这是测试标题2’}}) 只修改第一条符合要求的文档;

更新所有符合要求的文档 db.集合名.update({‘title’ : ‘这是测试标题1’},{$set : {‘title’ : ‘这是测试标题2’}},{multi : true})

2、通过save()传入文档来更新已有的文档,通过_id一致来替换

语法:db.集合名.save({_id : id0, key1 : value1, key2 : value2, key3 : value3}) 

注:save中的_id必须与集合中的要更新的_id保持一致

 

六、在集合中删除文档

1、删除指定文档

语法:db.集合名.remove(删除的文档条件,{justone : <boolean>, writeConcern : <boolean>}

justone : 可选,如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档;

writeConcern :可选,抛出异常的级别;

例:db.集合名.remove({‘title’ : ‘这是测试标题2’})

 

七、查找

1、语法:db.表名.find({key1:’value1’}).pretty( )

2、语法:db.表名.find({key1:{$lt:50}}).pretty( )     相当于sql   select * from 表名 where key1 < 50

3、语法:db.表名.find({key1:{$lte:50}}).pretty( )    相当于sql   select * from 表名 where key1 <= 50

4、语法:db.表名.find({key1:{$gt:50}}).pretty( )   相当于sql   select * from 表名 where key1 > 50

5、语法:db.表名.find({key1:’value1’}, {key2:’value2’}).pretty( )   相当于sql   select * from 表名 where key1 = value1 and key2 = value2

6、语法:db.表名.find({$or: [{key1 = ‘value1’},{key2 = ‘value2’}).pretty( )    相当于sql   select * from 表名 where key1 = value1 or key2 = value2

 

2、删除所有文档

语法 :db.集合名.remove({})