非关系型数据库mongodb

mongoDB

非关系型数据库

Mongodb则是由数据库(database),集合(collection),文档对象(document)三个层次组成.

Mongodb中的集合(相当于关系型数据库中的表)但是没有没有了表与表之间的关系,以及列和行的概念,

集合:即一组文档,多个文档存放在一起即变成集合,类似于mysql中的表.数据库:多个集合组合在一起即变成数据库.这体现了其模式自由的特点.

类别:MongoDB

数据库:Db

表:collection

行:documenrt

字段变动耦合性:弱

关系型数据库

传统的关系型数据库一般是由数据库(database),表(tables),记录(record)三个层次的概念组成,

类别:mysql

数据库:db

表:table

行:row

字段变动耦合性:强

mongodb基本操作

  • 开始感受MongoDB的使用
  • 连接MongoDB在MongDB的安装路径下的Bin文件夹中打开CMD 注意:要使用系统管理员的CMD
  • 语法:mongo ip地址:端口号(mongodb的默认端口号为27017)/数据库名 (默认连接test)
  1. 查看当前数据库

show databases

2.增加切换数据库

use [db名称]

3.删除数据库

use [db名称]

db.dropDatabase() // D记得大写

4.查看数据库当中的集合

show collections

5.创建collection

db.createCollection([collection名称]) 只创建

db.[collection名称].insert({json数据}); 创建添加数据

6.删除集合

db.[collection名称].drop();

7.插入数据语句

  • insert方法插入
    db.COLLECTION_NAME.insert( {“key”:”val”,`````} )
    • 插入记录成功之后,mongodb会默认为每一个文档都添加一个id的字段,并且 同一集合中的id是唯一的,该字段可以是任意数据类型,默认的为objectId

    • save方法插入
      db.COLLECTION_NAME.save(document)
      save和insert有什么区别呢?
      insert: 若新增数据的主键已经存在,则会抛异常提示主键重复,不保存当前数据。
      save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。

8.批量插入数据语句

db.COLLECTION_NAME.insert([document1,document2,document3])

9.MongoDB文档管理-查询

db.[collection名称].find();//查询集合中所有的记录

db.[collection名称].find().pretty(); //格式化查询更加美观的显示数据,不至于太紧凑

  • 按条件查询

    • db.[collection名称].find({"key":value});

    • 第二个参数查询列格式说明 数字1代表需要查询的 0代表除此以外的(_id会默认显示)

    第二个查询参数里也可以有多个key:val 来进行更多内容筛选
    条件运算符条件操作符用于比较两个表达式并从mongoDB集合中获取数据。
    db.[collection名称].find({ key: {$gt : 100}}

  • And查询 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

    • db.[collection].find({key1:value1, key2:value2})
      比如有多个年龄14的人 选择 其中Name 为 haha的人
  • Or查询OR 条件语句使用了关键字 $or

    • db.[collection].find({$or:[{key1:value1},{key2:value2}] }).pretty()
      选择名字是haha的或者是年龄是13的的文档

10.排序按照首字母

db.[集合名称].find().sort({KEY:1});

key:要排序的字段 1:正序 -1:倒序
posted @ 2019-06-25 18:00  吧主  阅读(157)  评论(0编辑  收藏  举报