zoukankan      html  css  js  c++  java
  • 一 MongoDB入门

     一、MongoDB概念解析(对比MySQL学习):

    举个例子:

    MongoDB可视化操作工具:推荐Robomongo

    二、MongoDB默认的概念:

    1、MongoDB的单个实例可以容纳多个独立的数据库,并且每个数据库都有自己的集合和权限,存放在不同的文件中

    2、MongoDB默认的数据库为“db”,这个数据库存储在data目录中

    三、MongoDB基本命令:

    1、数据库命令

    show dbs:查询数据库的列表(MongoDB默认当该数据库中没有插入任何数据时,不会显示该数据库)

    db:查看当前数据库对象或集合

    use DATABASE_NAME:可以切换到指定的数据库(当该数据库不存在时就创建该数据库)

    db.dropDatabase():删除当前数据库

    2、插入(insert()和save()两种方式插入文档)

    2.1 insert

    db.COLLECTION_NAME.insert(document)

    举个例子:在当前数据库的col集合中插入一个文档

    PS:上面例子中col是当前数据库中的一个集合,如果该集合不存在,MongoDB会先创建该集合,然后向集合中插入数据

    也可以换个方式插入:先定义一个变量document,然后插入,如下:

    2.2 save

    上述的操作也可以使用save来完成,save和insert的区别如下:

    当插入的数据在MongoDB中存在相同的主键_id时,

    使用save会将数据库中原来的数据进行更新

    使用insert会报错,错误为:E11000 duplicate key error collection: test.col index: _id_ dup key: { : 2.0 }

    2.3 插入单条数据和插入多条数据

     3、更新(update和save两种方式)

    3.1 update:更新已存在的文档

    语法格式:

    参数说明:

    query:查询条件,类似mysql中的update语句where后面的部分

    update:更新操作,类似mysql中的update语句set后面的部分

    upsert(可选):表示如果没有query匹配到的记录,是否作为一条新的记录插入,默认为false,不插入

    multi(可选):表示是否只更新query匹配到的第一条记录,默认是false,只更新匹配到的第一条

    writeConcern(可选):表示抛出异常的级别

    异常级别配置:

    举个例子:

    把上面这条记录的crud的改为更新数据的语句如下:

    更多demo:

    3.2 save方法:通过传入的文档,替换已有的文档

    语法如下:

    参数说明:

    document:文档数据

    writeConcern(可选):抛出的异常级别

     PS:使用save方法时,mongodb会根据_id来判断是否已存在该条数据,即不能通过name="xxx"来匹配已有的一条记录,且save会将新传入的文档完全替换掉匹配到的已有文档

    举个例子:

    已有记录

     

    save语句

    执行结果

    3.3 updateOne和updateMany

    MongoDB从3.2版本开始,支持向指定集合更新单个文档和多个文档

    更新单个文档:

    更新多个文档:

     4、删除 

    4.1 remove

     语法格式如下:

    MongoDB2.6版本以后remove的语法格式如下(以前的语法格式依然兼容):

    参数说明:

    query(可选):查询条件,类型mysql中delete语句后面的where部分

    justOne(可选):表示是否只删除匹配到的第一个文档,0或false表示删除所有匹配到的数据,其他表示只删除匹配到的第一个

    writeConcern(可选):表示抛出异常的级别(参考update的异常级别)

    举个例子:

    删除msg为mongodb的一条记录

    删除所有的数据(类似mysql中的truncate)

    4.2 deleteOne和deleteMany(推荐)

    删除指定集合中的全部文档

    删除指定集合中msg为mongodb的所有文档

    删除指定集合中msg为mongodb的一个文档

     5、查询

    5.1 基本查询

     语法格式如下:

    参数说明:

    query(可选):使用查询操作符指定查询条件,类似Mysql中select的where部分

    projection(可选):使用投影操作符指定返回的键,省略该参数,即可返回文档中所有的键值(默认省略)

    举个例子:

    查询集合col中的所有文档

    查询集合col中msg为mongodb的所有文档

    查询集合col中的msg为mongodb的一个文档

    PS:据说是用pretty方法可以以格式化的方式来显示所有文档(使用robomongodb时,可以选择显示结果的方式,与我们的查询语句中是否加上pretty方法无关)

    projection的用法

    建议:在使用remove方法删除集合中的某条记录时,先使用find方法来执行一下判断的条件,验证是否正确

     5.2 MongoDB与RDBMS的where语句比较

    大于、等于、小于

    AND条件

    MongoDB的find方法可以传入多个键值,不同键值以逗号“,”分开,等同于mysql中的AND条件

    语法格式为:

    等同于

    WHERE key1=val1 AND key2=val2

    举个例子:

    OR条件

    MongoDB使用$or来表示OR条件语句

     举个例子:

    AND和OR联合使用:

    等同于Mysql语句为:'where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')'

    参考资料:

    http://www.runoob.com/mongodb/mongodb-tutorial.html

  • 相关阅读:
    从spring官网下载spring 架包
    bootstrap-dialog插件的使用
    underscore.js,js工具库
    datatables,表格
    formvalidation表单验证
    数字千分位处理,number.js,js保留两位,整数强制保留两位小数
    js精确计算
    django F和Q 关键字使用
    django 的多对多关系
    django中的一对一的关系
  • 原文地址:https://www.cnblogs.com/feizifeiyu/p/7986244.html
Copyright © 2011-2022 走看看