这里注意点击Custom进行自定义配置,选择Complete选项则会默认安装GUI,后期安装时进度条会卡住
这里这里将默认Install MongoDB as a Service取消掉,点击Next下一步即可
默认勾选Install MongoDB Compass时记得取消勾选再点击Next,MongoDB Compass是一个图形化界面管理工具,我们可以到官网下载
cd到安装目录下的bin目录,运行mongod.exe --dbpath=你的db目录路径,运行成功会出现以下信息:
运行完mongod.exe --dbpath命令之后就可以关闭小黑窗
systemLog:
destination:file
path:D:\Programme\Library\mongodb-win32-x86_64-2012plus-4.2.6\data\log
storage:
dbpath:D:\Programme\Library\mongodb-win32-x86_64-2012plus-4.2.6\data\db
详解:path:路径下需要手动创建log文件夹,并在其目录下手动创建mongod.log文件
dbpath:生成的数据文件路径
mongod.exe --config "D:\Programme\Library\mongodb-win32-x86_64-2012plus-4.2.6\mongod.cfg" --install
注意:--config后有一个空格,新手容易忽略
运行成功会有以下提示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200503100548343.PNG)
启动:net start mongodb
关闭:net stop mongodb
当出现指定错误是因为没有正常关闭mongod服务,导致mongod被锁
解决方案:进入db文件夹,删除mongod.lock文件,然后重新启动服务即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200503101019335.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTM2NDIyMA==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200503101219845.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTM2NDIyMA==,size_16,color_FFFFFF,t_70)
SQL术语 | MongoDB术语 |
---|---|
database | database |
table | collection |
column | field |
row | document |
index | index |
table joins | – |
primary key | primary key |
systemLog:
destination:file
path:创建log路径
storage:
dbpath:创建db路径
mongod.exe --config "mongo.cfg文件路径" --install
注意:–config后有一个空格
进入到bin目录或者添加环境变量后执行:mongod.exe --dbpath=选择一个存放db服务器的路径
pip install pymongo
语法:use 数据库名
注意:如果数据库不存在则创建数据库,否则切换到指定;如果刚刚创建的数据库不在列sex表中,如果要显示它,我们需要像刚刚创建的数据库中插入一些数据:
db.student.insert({name: "小明", age: 20, sex: 1, address: "地球", isDelete: 0})
前提:使用当前数据库(use 数据库名)
db.dropDatabase()
show dbs
方案1:db
方案2:db.getName()
exit
help
show collections
语法:db.createCollection("集合名")
示例:db.createCollection("class")
语法:db.集合名.insert(document)
示例:db.student.insert({name: "小小明", age: 19, sex: 1, address: "地球", isDelete: 0})
语法:db.集合.drop()
示例:db.class.dop()
语法:db.集合名.insert(document)
插入一个:db.student.insert({name: "小花", age: 23, sex: 0, address: "水星", isDelete: 0})
语法:db,集合名.insert([文档1, 文档2...文档n])
插入多个:插入的内容用一个列表——db.student.insert([{name:"小光", age:20, sex:1, address:"冥王星", isDelete:0}, {name:"小小光", age:19, sex:0, address:"海王星", isDelete:0}])
语法:db.集合名.save(文档)
说明:如果不指定\_id字段,save()方法类似于insert()方法;让如果指定\_id字段,则会更新_id字段的数据
不指定:db.student.save({name: "小华", age: 23, sex: 1, address: "火星1", isDelete: 0})
指定:db.student.save({_id: ObjectId("5eb0cadb6b6799dd5dcd43f6"), name: "小华", age: 24, sex: 1, address: "火星2", isDelete: 0})
语法:
db.集合名.update(
,
{upset:,
multi:,
writeConcern:,
})
query:update的查询条件,类似于SQL中update语句内where后边的内容
update:update的对象和一些更新的操作符($set, $inc)等。$set直接更新;$inc在原有的基础上累加后更新
upset:可选。如果不存在update记录,是否当新数据插入。True:插入;False:不插入,默认为False
multi:可选。MongoDB默认是False,如果只更新找到的第一条记录;如果这个参数为True,则按照这个条件查找出来的全部更新
writeConcern:可选。抛出异常的级别
需求:将峰的年龄更新为21
示例:db.student.update({name:"小马"}, {$set:{age:21}}) # 覆盖原有结果
示例:db.student.update({name:"小马"}, {$inc:{age:21}}) # 原有结果上累加
测试:db.student.insert([{name:"小马", age:20, sex:1, address:"地球", isDelete:0}, {name:"小张", age:20, sex:1, address:"地球", isDelete:0}])
示例:db.student.update({name:"陈"}, {$set:{age:21}}, {multi:true}) # 全改
语法:db.集合名.save(document, {writeConcern:})
document:文档数据
writeConcern:可选,抛出异常级别
说明:在执行remove()函数前,先执行find()命令来判断执行的条件是否存在一个良好习惯,删除操作的条件后续再讲
语法:
db.集合名.remove(
query,
{
justOne:,
writeConcern:
}
)
示例:db.student.remove({name:"小齐"}) # 全删
示例:db.student.remove({name:"小齐"}, {justOne:true}) # 只删除一个,同类中最后一个
query:可选,删除文档的条件
justOne:可选,如果为true或1,则只删除一个文档
find()方法:查询集合下所有的文档(数据)
语法:db.集合名.find()
示例:db.student.find()
find()方法查询指定列
语法:db.集合名.find(
query,
{
:1,
:1
}
)
示例:db.student.find({sex:1}, {name:1, age:1})
query:查询条件
key:要显示的字段,1表示显示
示例:db.student.find().pretty()
示例:db.student.findOne({sex:1})
作用:条件操作符用于比较两个表达式,从MongoDB集合中获取数据
语法:db.集合名.find({:{<$gt>:}})
示例:db.student.find({age:{$gt:20}})
语法:db.集合名.find({:{$gte:}})
语法:db.集合名.find({:{$lt:}})
语法:db.集合名.find({:{$lte:}})
语法:db.集合名.find({:{$gte:, $lte:}})
语法:db.集合名.find({:})
语法:db.集合名.find({"_id":ObjectId("ID值")})
示例:db.student.find({"_id":ObjectId("5eb12866af13f845f36bc544")})
语法:db.集合名.find().count()
语法:db.集合名.find({name:/包含的关键字/}) # 汉字不能用引号,否则查询不出想要的结果
示例:db.student.find({name:/陈/})
语法:db.集合名.find({name:/^陈/})
语法:db.集合名.find({条件1,条件2, ..., 条件n})
示例:db.student.find({sex:1, age:{$gt:21}})
语法:db.集合名.find(
{
$or:[{条件1}, {条件2}, ..., {条件n}]
}
)
示例:db.student.find({$or:[{age:20}, {age:{$lte:22}}]})
语法:db.集合名.find(
{
条件1,
条件2,
$or:[{条件1}, {条件2}]
}
)
db.student.insert([{name:"韵", age:20, sex:0. address:"湖北十堰", isDelete:0}, {name:"昀", age:20, address:"湖北十堰"}])
db.student.find().limit(2)
db.student.find().skip(3)
c,skip与limit联合使用
通常用这种方式来实现分页功能
示例:db.student.find().skip(2).limit(2)
语法:db.集合名.find().sort({:1|-1})
示例:db.student.find().sort({name:1})
注意:1表示升序;-1表示降序