1.MongoDB的安装
对于这个我就不进行多余的讲解了,我把之前记录的安装MongoDB的笔记放上来,按着上面的步骤来安装应该是没有问题的。
-
打开下载MongoDB的链接
下载安装完成之后配置环境变量 D:\MongoDB\mongodb-win32-x86_64-2008plus-3.4.17-4-g3339fc9385\bin(安装路径自己想放去哪里就放去哪里) -
剩下的配置我的笔记也不是说得很清楚,推荐大家到这篇博客看比较详细的配置信息
2.可视化工具
对于MongoDB也有可视化的工具NoSQL Manager for MongoDB Professional,对于这个工具的使用我也是刚接触一段时间,所以大家想快速上手的话不妨去搜一下它的教程。
3.插入文档
根据我的理解MongoDB的语法类似于javascript,调用方法,传递参数来进行一系列的数据库操作。
我们先使用可视化工具创建一个名为school的库,然后创建一个名为students的集合(在mysql中称之为表),文档(在mysql中称之为数据)我们待会通过语句来创建。
- insert(<document>):插入一个文档,参数为一个对象。
db.students.insert(
{name:'杨五',age:18,school:'广东技术师范大学',friends:['杨一','杨二']}
);
- insertMany([<document>,<document>…]):插入多条数据,参数为一个数组。
db.students.insertMany([
{name:'张三',age:18,school:'广东技术师范大学',friends:['张一','张二']},
{name:'李四',age:18,school:'广东技术师范大学',friends:['李一','李二']}
]);
经过上述两个操作我们可以看到students集合中多了3条数据
4.查询文档
- find():不传递查询条件的参数默认为查询该集合中全部数据。
db.students.find();
返回students中的全部数据
- findOne():只返回一条数据。
db.students.findOne();
返回students中的第一条数据
- find(<query>):query为查询的条件对象,如果存在多个条件,则在第一个条件后面进行拼接key:value即可。
db.students.find({name:"张三",sex:"男"})
查询students中姓名为张三且性别为男的学生,即为AND条件
- OR条件
使用到$or这个关键字
db.students.find({
$or:[{name:"张三"},{name:"李四"}]
})
查询students中姓名为张三或者李四的学生
- 比较条件
$gt:大于,$gte:大于等于,$lt:小于,$lte:小于等于,$ne:不等于
db.students.find({
age:{$gt:18}
})
查询students中年龄大于18的学生
结合$or
db.student.find({
$or:[
{age:{$gt:19}},
{age:{$lt:17}}
]
});
查询students中年龄大于19或者年龄小于17的学生
- length():返回查询到的数据的个数。
db.students.find().length();
这里需要注意的是length是一个方法,一定要加上括号代表执行这个方法。
开始只讲解较简单的查询数据语句,复杂的查询语句我将在之后的文章中讲到(其实是因为我没学…)
5.修改文档
- update(<query>,<update>,<option>):query为查询的条件,update为需要修改的数据,option为配置信息,三个参数都是对象。此处需要注意的是,update()默认只更新查询到的第一条数据,因此需要在option中配置{multi:true}才会修改查询到的所有数据。
在上述创建的集合中再添加3条数据
要求:把姓名为张三的人的school修改成暨南大学
db.students.update({name:'张三'},{$set:{school:'暨南大学'}},{multi:true});
注意点:$set是字段更新操作符,一定要放在{}之中,需要记住的是这3个参数都是对象。更多操作符我也将放到后面的学习过程中慢慢使用讲解,等不及的可以查看更多更新操作符。
- updateMany(<query>,<update>):更新多条数据。
6.删除文档
- deleteOne(<query>):删除匹配的第一条文档
db.students.deleteOne({name:"张三"});
- deleteMany(<query>):删除多条匹配的文档,不传参数默认删除全部文档
db.students.deleteMany({name:"张三"});
注意点:虽然remove()也可以删除文档,但是官方推荐的是deleteOne()和deleteMany()。在查看菜鸟教程时评论中有人说remove()不会真正释放空间,因此不推荐使用。还有一个需要注意的是没有delete()这个方法,使用db.students.delete({})时会出错。