zoukankan      html  css  js  c++  java
  • MongoDB应用详解

    mongodb是一个用来存储管理数据的软件

    他是一个 c/s 架构的软件,是一个网络类型的软件
    如果要是使用mongodb的话,首先需要开启mongodb的服务端,然后通过客户端软件去连接服务器

    1.要创建一个当前应用的数据库:database
    database - Excel
    table - Sheet1 - 区分存储相同类型的数据的集合
    row - document - 一条记录
    column - field - 列,字段


    MongoDB 数据类型

    下表为MongoDB中常用的几种数据类型。
    数据类型 描述
    String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
    Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
    Boolean 布尔值。用于存储布尔值(真/假)。
    Double 双精度浮点值。用于存储浮点值。
    Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
    Arrays 用于将数组或列表或多个值存储为一个键。
    Timestamp 时间戳。记录文档修改或添加的具体时间。
    Object 用于内嵌文档。
    Null 用于创建空值。
    Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
    Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
    Object ID 对象 ID。用于创建文档的 ID。
    Binary Data 二进制数据。用于存储二进制数据。
    Code 代码类型。用于在文档中存储 JavaScript 代码。
    Regular expression 正则表达式类型。用于存储正则表达式。


    命令:
    db : 查看当前所在的数据库
    show dbs : 显示所有数据库的列表
    use <db名称> : 选择进入指定的db,如果数据库不存在,则会先创建,如果这个数据里面没有数据,可能显示不出来

    插入:
    db.<COLLECTION_NAME>.insert({}) : 向指定的集合(表)中插入一条数据,如果该集合不存在,则会自动创建


    更新:
    db.<COLLECTION_NAME>.update(
    <query>,
    <update>,
    {
    upsert: <boolean>,
    multi: <boolean>,
    writeConcern: <document>
    }
    )

    query : update的查询条件,类似sql update查询内where后面的。
    update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
    upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    writeConcern :可选,抛出异常的级别。

    db.Users.update( {username:'leo'},{ $set:{age:36} } );

    查询
    db.COLLECTION_NAME.find()
    db.COLLECTION_NAME.find().pretty() :格式化打印数据

    1 等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
    2 小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
    3 小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
    4 大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
    5 大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
    6 不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
    1 and
    2 db.col.find({key1:value1, key2:value2}).pretty()
    3 or
    4 db.col.find({$or:[{key1:value1},{key1:value1}]});
    5 
    6 
    7 删除
    8 db.col.remove({})

    limit(number) : 获取指定条数的记录
    skip(number) : 指定跳过多少条记录

    limit+skip可以实现分页的效果
    比如有100条数据
    每页显示5条
    需要显示第三页的数据
    limit(5).skip(10);


    添加字段索引,使查询速度变快
    db.<COLLECTION_NAME>.ensureIndex({KEY:1})

    模糊查询
    使用正则
    db.<COLLECTION_NAME>.find(KEY: {$regex: '正则字符串'})
    db.<COLLECTION_NAME>.find(KEY: /正则/)

    添加
    查询
    修改
    删除

    条件
    排序
    限制limit
    skip
    模糊匹配

     1 添加3条商品信息
     2 db.Goods.insert({name:'iphone','price': 4000});
     3 db.Goods.insert({name:'imac','price': 10000});
     4 db.Goods.insert({name:'iphone6','price': 5000});
     5 db.Goods.insert({name:'iphone6s','price': 6000});
     6 修改
     7 db.Goods.update( {name:'iphone'}, {$set:{price:2000}} );
     8 删除
     9 db.Goods.remove({name:'iphone6s'});
    10 查询
    11 db.Goods.find({name: 'iphone'}).pretty();
    12 db.Goods.find({name: /iphone/}).pretty();
    13 db.Goods.find({price: {$gt: 3000}}).pretty();
    14 db.Goods.find().limit(1).pretty();
    15 db.Goods.find().skip(1).pretty();
    16 db.Goods.find().limit(1).skip(1).pretty();
    17 db.Goods.find().sort({price: -1}).pretty();
  • 相关阅读:
    linux消息队列相关操作
    linux下删除3分钟之前指定文件夹下的指定类型文件
    centos6.5安装gmime-2.6
    centos6.5安装filezilla
    posix 正则库程序
    nginx正向vs反向代理
    AbstractQueuedSynchronizer 原理分析
    JAVA NIO详解
    java NIO原理及实例
    Thread类详解
  • 原文地址:https://www.cnblogs.com/jiechen/p/5605120.html
Copyright © 2011-2022 走看看