zoukankan      html  css  js  c++  java
  • MongoDB简单使用

    在启用mongodb服务的时候,会有三个警告:

    第一个警告: Linux内存动态分配,mongo占用内存较大,官方推荐关闭动态分配所以警告

    第二个警告:  默认分配给mongo的进程和文件数量限制过低,需要重新分配

    第三个警告: 我们用root权限启动mongo,数据不安全.用--auth来创建用户,来认证

    简介:

    1.类似json格式, 键值对形式,每一条叫文档, 2.不用事前创建数据库,给数据就会自动创建 3.mongoDB必须是utf-8

    启动mongo命令: 

    1.sudo mongod   是启用服务的命令 

     

    2.# 启动mongod,并指定数据存储目录(目录必须存在,且有读写权限)

    sudo mongod --dbpath=/xxxxx/xxxx

     

    3.使用守护进程方式启动,--fork,就必须启动logpath

    sudo mongod--logpath=/data/db/mongodb.log --fork

     

    4.使用用户认证方式启动

    sudo mongod --auth

    进入shell

    命令:mongo---use admin---db.createUser({user: 'python', pwd:'python', roles: ['root']})

    登录db.auth('python','python')

    换个用户名,可以设置权限roles:[{role: "read", db: ''test'}]

    各个数据库的默认端口拓展

    MongoDB端口27017

    redis端口 6379

    mysql端口 3306

    mongo进入客户端

    7. 查看当前数据库下所有的用户信息.

    > db.system.users.find()

    show collections

    13. 删除bigcat用户

    > db.dropUser("bigcat")

    MongoDB的服务器统计,需要在MongoDB客户端键入命令db.stats()

    查看当前数据库名

    db

    查看所有数据库名

    show dbs

    切换数据库,没有暂时不创建,插入数据时数据库才被创建

    use 数据库名

    删除数据库

    db.dropDatabase()

    集合命令

    db.createCollection(name)--->向不存在的集合第一次添加数据时,集合也被创建

    >db.createCollection("stu", {capped : true, size :6142800} )

    ----参数capped:默认值为false表示不设置上限,值为true表示设置上限

    ----参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节

    语法 :

    查看当前数据库的集合

    show collections

    删除集合命令

    db.stu.drop()

    插入

    db.集合名.insert({})

    insert添加相同_id的数据, 就会出错

    db.集合名.save({})

    save = insert + update

    语法与insert 相同,相同_id就会修改

    修改/添加

    db.stu.update({修改条件},{修改后的内容})默认修改匹配到的第一条文档全部数据

    update({修改条件},{$set:{age:30}})只修改文档age30,其他字段不变,默认修改第一个匹配到的文档

    db.stu.update({},{$set: {age = 100}})修改所有文档中的age100,默认修改第一个匹配到的文

    匹配所有文档的:

    db.stu.update({},{$set: {age = 100}},{multi:true}) 红色的参数就是让匹配所有文档

    查询:

    db.stu.find() 查询所有符合匹配条件的文档

    db.stu.findOne() 查询第一个符合匹配的文档

    db.stu.find({age: 18}).pretty()格式化输出

    比较运算符

     

    大于小于,大于等于,小于等于,默认是等于

     

    db.stu.find({age: {$lt : 18}}) 小于18
     
    逻辑运算符
    默认是and,表示两个都满足
    db.stu.find({age:18, gender: false})
    or表示满足任何一个条件即可,每一个条件都要是单独字典
    db.stu.find({$or: [{age:{$lt: 25}}, {gender: False}]})
     
    or 和 and 配合使用
    db.stu.find({age: {$in : [16, 18,20]}})
     
    支持正则
    db.stu.find({name: /段/}) 斜杠里就是正则
    db.stu.find({name : {$regex: '黄', $options: :"$i"}})
    忽略大小写修饰符
    $options: :"$i"
     
    自定义查询:
    db.stu.find($where : function(){return this.age < 20})
     
    db.stu.find().limit(3)显示前三个
    skip(2)跳过前两个
    可以组合使用,
     
    投影
    表明显示哪些数据
    db.stu.find({}, {name: 1})1,true表示显示,0,false表示不显示,_id是默认显示的
     
    排序
    find().sort({age: 1}) 1是升序,-1是降序
     
    统计个数
    db.stu.find({条件}).count()
    也可以
    db.stu.count({条件})
     
    消除重复
    db.stu.distinct('age', {})
    只会返回'age'的字段,{}查询的条件,返回值是列表
     

     

    各个参数

    "db":"test",表示当前是针对"test"这个数据库的描述。想要查看其他数据库,可以先运行$ use datbasename

    "collections":3,表示当前数据库有多少个collections.可以通过运行show collections查看当前数据库具体有哪些collection.

    "objects":267,表示当前数据库所有collection总共有多少行数据。显示的数据是一个估计值,并不是非常精确。

    "avgObjSize":623.2322097378277,表示每行数据是大小,也是估计值,单位是bytes

    "dataSize":16640,表示当前数据库所有数据的总大小,不是指占有磁盘大小。单位是bytes

    "storageSize":110592,表示当前数据库占有磁盘大小,单位是bytes,因为mongodb有预分配空间机制,为了防止当有大量数据插入时对磁盘的压力,因此会事先多分配磁盘空间。

    "numExtents":0,没有什么真实意义

    "indexes":2,表示system.indexes表数据行数。

    "indexSize":53248,表示索引占有磁盘大小。单位是bytes

    "ok":1,表示服务器正常

    SQL和MongoDB对比

    SQL术语/概念

    MongoDB术语/概念

    解释/说明

    database

    database

    数据库

    table

    collection

    数据库表/集合

    row

    document

    数据记录行/文档

    column

    field

    数据属性/字段()

    index

    index

    索引

    primary key

    primary key

    主键,MongoDB默认自动将_id字段设置为主键,可以手动设置

    以上是总结

  • 相关阅读:
    ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考
    ASP.NET Core 中文文档 第四章 MVC(3.1)视图概述
    ASP.NET Core 中文文档 第四章 MVC(2.3)格式化响应数据
    ASP.NET Core 中文文档 第四章 MVC(2.2)模型验证
    ASP.NET Core 中文文档 第四章 MVC(2.1)模型绑定
    ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览
    mysql 解除正在死锁的状态
    基于原生JS的jsonp方法的实现
    HTML 如何显示英文单、双引号
    win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)
  • 原文地址:https://www.cnblogs.com/ppansj/p/7987994.html
Copyright © 2011-2022 走看看