zoukankan      html  css  js  c++  java
  • mongodb 用户指引

    维护人:陈权

    一.mongodb install on linux
    curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
    mv mongodb-linux-x86_64-3.0.6.tgz /usr/local/mongodb
    tar -xvf mongodb-linux-x86_64-3.0.6.tgz

    mkdir -p /usr/local/mongodb
    mkdir -p /usr/local/mogodb/data&& mkdir -p /usr/local/mongodb/logs
    用于存放mongo安装文件以及数据db存放,log 提供日志以及mongo配置
    配置mongo
    touch mongo/logs/mongo.conf
    vi mongo.conf
    添加配置项:
    dbpath=/usr/local/mongodb/data
    logpath=/usr/local/mongodb/logs
    logappend=true
    journal=true
    quite=true
    port=9997
    配置环境变量:
    vi /etc/profile
    export PATH=<mongodb-install-directory>/bin:$PATH #<mongodb-install-directory>/bin 为mongo bin目录
    source /etc/profile

    启动mongo:
    cd <mongodb-install-directory>/bin
    ./mongod
    操作mongo shell :
    cd <mongodb-install-directory>/bin
    ./mongo
    快速开始:
    show dbs

    创建或查看数据库
    use mydb

    创建集合
    db.createCollection(name, options)
    show collections 或者 show tables#查看集合

    删除集合
    db.mycollection.drop()
    删除数据库
    use mydb
    db.dropDatabase()

    插入数据:
    db.mycollection.insert({title: ‘MongoDB 教程’,
    description: ‘MongoDB 是一个 Nosql 数据库’,
    by: ‘admin’,
    url: ‘http://www.webank.com‘,
    tags: [‘mongodb’, ‘database’, ‘NoSQL’],
    likes: 11
    })

    格式化查询集合:
    db.mycollection.find().pretty()
    等价于sql select * from mycollection ;

    更新数据集合:
    db.mycollections.update({age:77},{$set: {name:”lisi”}},false,true)
    等价于 update mycollections set name=”lisi” where age=77;
    删除操作:
    db.mycollection.remove({age:17})
    等价于delete from mycollection where age=17 ;

    查询前十条:
    db.mycol.find().limit(10)
    查询五到十
    db.mycol.find().limit(10).skip(5)
    排序:
    db.mycol.find().sort({id:1}) #1 代表asc -1 为desc

    模糊查询:
    db.mycol.find({id:/job/})
    等价于 select * from mycol where id like %job%;

    精确查询:
    db.mycol.find({age:11})
    等价于 select * from mycol where age=17 ;
    指定列查询:
    db.mycol.find({},{age:1,id:1})
    select id,name from mycol ;
    且查询:
    db.mycol.find({key1:value1, key2:value2}).pretty()
    区间查询:
    如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

    操作 格式 范例 RDBMS中的类似语句
    等于 {<key>:<value>} db.col.find({“by”:”99”}).pretty() where by = ‘99’
    小于 {<key>:{$lt:<value>}} db.col.find({“likes”:{$lt:50}}).pretty() where likes < 50
    小于或等于 {<key>:{$lte:<value>}} db.col.find({“likes”:{$lte:50}}).pretty() where likes <= 50
    大于 {<key>:{$gt:<value>}} db.col.find({“likes”:{$gt:50}}).pretty() where likes > 50
    大于或等于 {<key>:{$gte:<value>}} db.col.find({“likes”:{$gte:50}}).pretty() where likes >= 50
    不等于 {<key>:{$ne:<value>}} db.col.find({“likes”:{$ne:50}}).pretty() where likes != 50

    or 查询:
    MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

    db.col.find(
    {
    $or: [
    {key1: value1}, {key2:value2}
    ]
    }
    ).pretty()

    等价于: select * from col where key1=value1 or key2=value2;

    聚合函数:
    aggregate() 方法的基本语法格式如下所示:

    db.COLLECTION_NAME.aggregate()

    db.mycol.aggregate([{$group : {_id : “$user”, num_tutorial : {$sum : 1}}}])
    等价于: select count(*) from mycol group by user;

    下表展示了一些聚合的表达式:

    表达式 描述 实例
    $sum 计算总和。 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$sum : “$likes”}}}])
    $avg 计算平均值 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$avg : “$likes”}}}])
    $min 获取集合中所有文档对应值得最小值。 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$min : “$likes”}}}])
    $max 获取集合中所有文档对应值得最大值。 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$max : “$likes”}}}])
    $push 在结果文档中插入值到一个数组中。 db.mycol.aggregate([{$group : {_id : “$by_user”, url : {$push: “$url”}}}])
    $addToSet 在结果文档中插入值到一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : “$by_user”, url : {$addToSet : “$url”}}}])
    $first 根据资源文档的排序获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : “$by_user”, first_url : {$first : “$url”}}}])
    $last 根据资源文档的排序获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : “$by_user”, last_url : {$last : “$url”}}}])

  • 相关阅读:
    Odoo开发教程15-管理 Odoo 数据库
    星辉信息科技Odoo开发教程14-源码安装 Odoo第三讲
    星辉信息科技Odoo开发教程13-源码安装 Odoo第二讲
    Odoo开发教程12-源码安装 Odoo
    星辉信息科技Odoo开发教程11-使用 Windows 子系统安装 Linux
    Metasploit 进阶
    Metasploit 一些重要模块使用介绍
    Metasploit 使用基础
    【译】Attacking XML with XML External Entity Injection (XXE)
    CentOS6 安装Sendmail + Dovecot + Roundcubemail
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/11715349.html
Copyright © 2011-2022 走看看