mongoDB基本语法

一、目标

创建集合(即sql的表),删除集合,插入数据,

二、环境

windows 7 64bit ,

数据库安装文件:mongodb-win32-x86_64-2008plus-ssl-4.0.6-signed.msi,

GUI可视化管理工具:MongoChef5.0.1(studio 3T for mongoDB)

三、启动mongoDB服务。

1.用windows的cmd工具进入mongoDB的安装目录下的bin目录,

2.执行mongode.exe --dbpath ""D:\ProgramFiles\mangoDB\data\db" 回车。

mongoDB基本语法_第1张图片

db文件夹是我们之前创建数据库前自定义存放数据库的目录。

四、创建MongoDB集合

1.进入MongoDB命令行。(用windows的cmd工具进入mongoDB的安装目录下的bin目录,执行命令mongo.exe回车)

2.创建集合

2.1 创建数据库

首先先进入到我们的目标数据库use mydb回车。(mydb是我们上个博客说的创建数据库叫mydb)

如果use的数据库存在,就用存在的数据库,如果数据库是不存在的,则自动创建该数据库

mongoDB基本语法_第2张图片

2.2.1比如创建一个集合叫xClass(即我们通常sql中的表叫xClass),敲命令db.createCollection("xClass")回车。注意Collection的C是大写。

2.22 第二种创建集合的方法,命令行

db.xClass.insert({id:1, className:"jisuanji", teacher:"kahn"})   回车。

意为,如果xClass集合不存在,就直接创建集合,并且插入一条数据进去。

2.3 查看集合

2.3.1 可以使用命令show collections。全小写。

2.3.2 可以使用GUI工具看创建的MongoDB集合。

mongoDB基本语法_第3张图片

五、删除集合

1.先进入数据库use mydb

2.db.集合名.drop() 。   比如我们删除掉xClass集合。那就执行命令db.xClass.drop()回车执行即可。

六、插入数据

1.先进入数据库use mydb

2.命令行下执行,如db.student.insert({name:"张三", age:19, gender:1, address:"广州", isDelete:0}) 回车。

意为,在student集合下插入一条数据进去,

语法:db.集合名.insert({键值对,键值对,.....})

3.命令行下一次插入多条数据。如下:

db.student.insert([{name:"张三", age:19, gender:1, address:"广州", isDelete:0}, {name:"李四", age:20, gender:1, address:"天津", isDelete:0}, {name:"子欣", age:22, gender:1, address:"南开", isDelete:0}])

如法:db.集合名.insert([{a键值对1,a键值对2,.....}, {b键值对1,b键值对2,.....} ])

3.查看刚才插入的数据。

mongoDB基本语法_第4张图片

mongoDB基本语法_第5张图片

mongoDB基本语法_第6张图片

七、插入或修改数据

还有一种save()方法,即可以更改数据,也可以插入数据。

db.student.save()

情况1:如果如果没有指定ID,则是插入新数据。

db.student.save({ name:"徐子欣", age:18, gender:1, address:"天津南开区", isDelete:0})   回车执行。

情况2:如果指定了ID值,则是修改数据。

语法:db.集合名.save({_id:ObjectId("艾迪值"), 键值对1,键值对2.......})

db.student.save({_id:ObjectId("5c89ecd012c1bcb23ed4e906"), name:"徐子欣", age:18, gender:1, address:"南开区", isDelete:0})   回车执行。不可思意。不可思议吧。

八、更新数据

1.语法:db.集合名.update({条件键:条件值}, {$set:{更新键:更新值}})

如:db.student.update({name:"徐子欣"}, {$set:{age:19}})

意为:将student集合中的,name叫徐子欣的人的年龄age更新成19.

2.语法:db.集合名.update({条件键:条件值}, {$inc:{更新键:更新值}})

如:db.student.update({name:"徐子欣"}, {$inc:{age:20}})

意为:将徐子欣的年龄age值在上次19的基础上加上本次写的20,结就是年龄39

九、删除文档

即在sql中删除行数据。

1.语法:db.集合名.remove({条件键: 条件值})

例如: db.student.remove({name: "徐子欣5"}) 

意为:删除一个叫徐子欣5的人,从集合student中。

友情提示:不管是删除,还是增加、修改、更新、一定要在当前数据库下操作。use 数据库名

2.语法:db.集合名.remove({条件键: 条件值}, {justOne:true})

如果要删除的东西有好多个,那么加上justOne:true,则只会删除第一个。

 

十、查询

1.查询所有

语法: db.集合名.find()    ,如果数据量大的话,慎用,你懂的。

例如:db.student.find()

mongoDB基本语法_第7张图片

2.查询指定列

语法:db.集合名.find({条件键:条件值}, {显示键1:显示值1,  显示键2:显示值2, .....})

例如:db.student.find({gender:1}, {name:1, age:1})

意为:从student集合中查找性别等于1的,结果只显示名字age和年龄age

mongoDB基本语法_第8张图片

例子2:

mongoDB基本语法_第9张图片

例子3:

mongoDB基本语法_第10张图片

3.查询所有并且不带条件

语法:db.集合名.find({}, {显示键1:显示值1,  显示键2:显示值2, .....})

例如:db.student.find({}, {name:1, age:1})

4.查询所有文档,以JSON格式显示

语法:db.集合名.find().pretty()

例如:db.student.find().pretty()

mongoDB基本语法_第11张图片

5.查询一条数据。

语法:db.集合名.findOne()

还可以加条件:db.集合名.findOne({条件键: 条件值})

mongoDB基本语法_第12张图片

 

十一、查询条件操作符

1.大于  $gt   语法:db.<集合名>.find({: {$gt:}})

2.大于等于 $gte

3.小于 $lt

4.小于等于 $lte

5.等于 :     语法:db.<集合名>.find({: })

6.大于等于and小于等于 $gte $lte   语法:db.<集合名>.find({: {$gte:, $lte:}})

7.使用ID值查询     语法:db.<集合名>.find({"_id":ObjectId("id值")})

8.查看查询结果的条数   语法:db.<集合名>.find(条件).count()

9.查看某个字段值是否包含另一个字符。  语法:看下面例子6

10.查看以某字符开头的值。 语法:看下面例子7

11.截取几条数据     相当于sql的,select top(3)* from student ,看例子10

例子1:查询年龄大于30的所有人

db.student.find({age: {$gt:30}})

mongoDB基本语法_第13张图片

例子2:查询年龄大于等于38的人

db.student.find({age: {$gte:38}})

 

例子3:查询年龄大于等于3,并且小于等于5的人

db.student.find({age: {$gte:3, $lte:5}})

mongoDB基本语法_第14张图片

 

例子4:利用ID值进行查询。

db.student.find({"_id":ObjectId("5c89ecd012c1bcb23ed4e906")})

例子5:查询结果的条目数

db.student.find().count()

 

例子6:查看某个字段中是否包含某字符

 db.student.find({name:/徐/})

查看集合中是否有包含名字有“徐”的值。

mongoDB基本语法_第15张图片

 

例子7:

 db.student.find({name:/^t/})

查询集合student中,是否有以字母t开头的数据。

 

例子8:条件AND

db.student.find({age:{$gt:30}, name:/徐/})       从student集合中查找年龄大于30的,并且名字name包含“徐”这个字的人

 db.student.find({age:{$gt:20}, name:/徐/})      从student集合中查找年龄大于20的,并且名字name包含“徐”这个字的人

mongoDB基本语法_第16张图片

 

例子9   条件OR

db.student.find({$or:[{age:18}, {age:{$lt:5}}]})

意为:从student集合中查找,年龄等于18岁,或者年龄小于5岁的人。

mongoDB基本语法_第17张图片

 

例子10:   查询指定值条数的数据

db.student.find().limit(3) 查询3条数据。

db.student.find().limit(5) 越过指定值的数据。

mongoDB基本语法_第18张图片

 

例子11: 类似分页功能,越过几条,查几条?

db.student.find().skip(2).limit(3)          意为:越过2条数据,再查3条数据

mongoDB基本语法_第19张图片

测试OK

2019年3月14日16:50:50

例子14: 升序、降序排列

语法:db.<集合名>.find().sort({:1|-1})      ,1或-1

例如:db.student.find().sort({age:1})          ,在student集合中,用age升序的方式显示所有数据。

例如:db.student.find().sort({age:-1})          ,在student集合中,用age降序的方式显示所有数据。

mongoDB基本语法_第20张图片

你可能感兴趣的:(数据库)