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({})