一、细节

1. 更改端口号

命令后加上 –port 10086

2.更改数据存放地址

--dppath C:\Users\MongoDB\data\db

3.启动

net start MongoDB
mongod –dbpath 数据库路径 –port 端口号

4.启动与打开

启动mongodb: 打开cmd窗口,输入mongod启动服务器
连接mongodb: 打开cmd窗口,输入mongo连接mongodb启动客户端,出现 >

5.将MongoDB设置为系统服务

可以在后台启动,不需要每次都手动

  • 先在data文件下创建一个新文件夹log(用来存放日志文件)
  • 在Mongodb新建配置文件mongo.config
  • 用记事本打开mongo.config ,并输入:
    dbpath=MongoDB安装目录\data\db
    logpath= MongoDB安装目录\data\log\mongo.log
  • 用管理员身份打开cmd:
  • 配置windows服务:
    cmd先跳转到 MongoDB安装目录\bin目录下。
    输入:mongod --config “D:\software\Mongodb\mongo.config” --install --serviceName “MongoDB”
    即根据刚创建的mongo.config配置文件安装服务,名称为MongoDB。

二、三个重要概念

数据库( database ):

数据库是一个仓库,在仓库中可以存放集合

集合( collection ):

集合类似于数组,在集合中可以存放文档

文档( document ):

  • 文档是数据库中最小单位,我们存储和操作的内容都是文档
  • 在MongoDB中,数据库和集合都不需要手动创建。
  • 当创建文档时,如果文档所在的集合或数据库不存在就会自动创建数据库和集合

三、指令

3.1.基本指令

: 以下指令中collection均指集合的名称:

1. show dbs (show databases):        #显示所有数据库
2. use test:      #表示进入test这个数据库
3. db:       #显示当前所在的数据库的名称
4. show collections:       #显示数据库所有的集合

3.2.数据库的CRUD(增删改查)的操作:

  • 5.db.collection.insert(doc):

向集合中插入一个文档(collection是集合的名称)(参数是数组即插入多个。插入时会自动生成一个_id,这个值也可以自己设置)

  • 6.db.collection.insertOne():
    其实和insert一样,只是看起来更清晰
    作用: 插入一个文档
  • 7.db.collection.insertMany(): 插入多个文档
  • 8.db.collection.find():
  • 查询集合中所有的文档,没有参数表示查询所有文档。可以传入对象作为参数。返回的是一个数组,后面加上[i]表示数组里的第i个文档。加上.length().count()获取该数组的长度
    例如: db.collection.find({name:"demo"});表示查询所有namedemo的文档
  • 在查询时,可以在第二个参数的位置设置查询结果的投影。例({},{sal:1})即只显示查询结果sal属性(_id属性默认显示),可以设置不显示{_id:0}
  • 注意:MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档则可以通过 . 的形式进行匹配。如果一个内嵌文档的值是一个数组,那么只要数组里含有此参数值就可以匹配上。而且,此属性名必须使用引号,说明他是一个表达式
  • 9.db.collection.findOne({name:“demo”}):

查询符合条件的第一个文档,返回的是对象,可以直接在后面加上.name获取name属性的值

  • 10.db.collection.update(查询条件,新对象): //替换
  • update()默认会直接用新对象替换掉匹配到的对象;如果只是需要修改部分属性,而不是整个替换,就要使用”修改操作符”。详情看*11
  • 注意:如果匹配到的值是一个数组,那么就可以用mongodb默认端口 密码_MongoDBpush实现往数组里添加此参数,且允许重复。$addToSet向数组中添加一个新元素,但是如果数组中含有此元素,就不会重复添加(不允许重复)。
  • 11.db.collection.update:
    使用方法:
db.collection.update(
      查询条件,
      { $set:{
          Name:”demo”
      } }
)
  • $set 表示只修改文档中指定的属性
  • $unset 表示删除文档中的指定属性,值任意取都行
  • 如果想修改多个,就需要在添加一个对象参数,并设置multi:true
  • 12.db.collection.replaceOne():
  • 13.db.collection.replaceMany():
  • **14.db.collection.remove(对象): ** //删除
  • 删除根据对象匹配到的所有文档(默认删除所有匹配到的文档),如果条件对象为空,就会删除所有数据
  • 第二个参数如果是true,就只会删除一个,默认为false(删除所有匹配到的文档)
  • 15.db.collection.drop():
    – 直接删除集合,性能比remove()更好
  • 16.db.dropDatabase():
    – 直接删除数据库
  • 17.db.collection.deleteOne():
  • 18.db.collection.deleteMany():
    – 一般开发中不会删除数据,会为数据添加一个字段表示是否被删除,查询的时候在条件对象中排除已经被删除的数据