美文网首页
001--Mongo DB

001--Mongo DB

作者: caiyiii | 来源:发表于2019-04-01 21:25 被阅读0次

安装:

到MongoDB官网下载安装包或者压缩包:mongodb
1.配置环境变量:将mongodb的bin目录配置到环境变量的path中,或新建MONGODB_HOME再配置到path中;
2.MongoDB默认端口号是27017,mongo localhost:27017表示客户端连接


MongoDB与MySQL介绍

SOL术语/概念 MongoDB术语概念 解释/说明
database database 数据库
table collection 数据表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将——ID字段设置为主键

MongoDB语法

数据库:

  • show dbs;//查看所有的数据库
  • db;//查看当前窗口所在的数据库
  • use 数据库名;//如果数据库不存在,则创建数据库,否则切换到指定数据库。
    db.dropDatabase();//删除当前数据库,默认为test,所以要切换到某个数据库下进行删除

集合:

  • 显示创建集合:db.createCollection("collectionName");//创建一个名为collectionName的集合,创建完成后会返回{"ok",1}json串。
    *隐示创建集合:db.collection2.insert({"name":"xiaolan","age":18});
  • show collections ;//查看集合
  • db.collection1.count();//统计集合中的数据数量
  • db.collection1.drop();//删除集合collection1
  • 注: MongoDB中支持js,() for(var i=0;i<1000;i++){ db.collection2.insert({name:"xiaolan"+ i,age:20 + i}) } ()

指定集合大小(固定集合):

  • db.createCollection("collectionName",{capped:true,size:1000,max:100});//size指定集合大小,单位为kb,max指定文档数量

查询:

  • db.collection1.find();//查询集合所有数据
  • db.collection1.find({age:7});//查询年龄为7的数据
  • db.collection1.find({age:7},{name:1});//查询年龄为7的数据,只返回name字段数据;两个大括号,前面的存查询条件,后面的存返回条件,返回条件字段1表示true,表示此字段返回,如果name后面的1改为0则表示不返回name字段,返回除name字段以外的其他字段
筛选查询:
  • gt(great than)大于;lt(less than)小于;gte(greater then equal)大于等于;lte(less than equal)小于等于;ne(not equal)不等于
    db.collect1.find({age:{$gt:10}});//查询age大于10的数据
包含:
  • db.collection1.find({price:{$all:[1,2]}});//(包含。。并且包含。。)此处price是个数组,此方法查询所有price包含1和2的数据
  • db.collection1.find({price:{$in:[1,2]}});//(包含。。或者包含。。)查询price中含有1或者2的数据
  • db.collection1.find({price:{$nin:[1,2]}});//(不包含。。并且不包含。。)查询price中不含有1并且不含有2的数据
  • db.collection1.find({or:[{name:"xiaomu"},{price:{in:[3]}}]});//(。。或者。。)查询name为xiaomu或者价格包含3的数据
  • db.collection1.find({$nor:[{name:"xiaomu"},{name:"xiaoli"}]});//(既不也不)查询name不为xiaomu或者name不为xiaoli的数据
分页:
  • db.collection1.find().skip(0).limit(10);//查询从0条开始,查询10条,skip()方法默认参数为 0 ,表示跳过的条数
排序:
  • db.collection1.find().sort({age:1});//按照年龄升序排序,为-1的话表示降序排序
存在:
  • db.c2.find({hight:{$exists:1}});//查询存在hight字段的数据
删除:
  • db.collection1.remove({age:7,name:"xiaomu"});//删除age为7,name为xiaomu的数据
更新:
  • db.c3.update({age:12},{name:"xiaoxiao"});//本意为将age为12的数据中的name更新为xiaoxiao,但是实际效果是只是将age为12的满足条件数据的第一条整条数据覆盖为name:“xiaoxiao”
  • db.c3.update({age:15},{$set:{name:"xiaolili"}});//本意为将age为15的数据的name修改为xiaolili,但是实际效果是只修改了查询到的第一条数据
  • db.c3.update({age:15},{$set:{name:"xiaolili"}},1,1);//将age为15的数据的name修改为xiaolili
    总共4个参数,第四个参数表示有多条数据符合筛选条件的话是否全部更改,默认为0只改第一条,改为1后表示全部更改
  • db.c3.update({age:21},{$set:{name:"xiaolili"}},1,1);//如果不存在age为21的数据则增加一条,增加的数据为{age:12,name:”xiaolili”}
  • db.c3.update({age:12},{name:"xiaoxiao"},{inc:{age:-2}},1,1);//inc表示使某个键值加减指定的数值,此处表示将name为xiaoxiao的数据的age字段的值减2
  • db.c3.update({age:12},{name:"xiaoxiao"},{inc:{age:1}},0,1);//unset用来删除某个键,此处表示删除name为xiaoxiao的数据的age字段
索引:
  • db.c3.ensureIndex({age:1});//为age字段建普通索引
  • db.c3.dropIndex({age:1});//删除age字段的索引
  • db.c3.ensureIndex({age:1},{unique:true});//为age字段建唯一索引,在为字段建了唯一索引后就不能再添加相同值的记录了

数据备份与恢复

备份:

mongodump -h dbhost -d dbname -o dbdirectory
-h:mongodb所在服务器地址,如127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,如:test
-o:需要备份的数据存放的位置,例如:d:\data (如果没有则自动创建)

恢复:

mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:mongodb所在服务器地址,如127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,如:test,此名称也可以和备份的时候不一样
-directoryperdb :备份数据所在的位置,例如:d:\data
注意:恢复时要在退出mongo命令行状态下执行

导入与导出

导出:

mongoexport -h dbhost -d dbname -c collectionName -o output
-h:数据库地址
-d:指明使用的库
-c:指明要导出的集合
-o:指明要导出的文件路径加文件名,文件名可以是txt、word、excel等多种文件格式

导入:

mongoimport -h dbhost -d dbname -c collectionname 文件的地址路径
-h:数据库地址
-d:指明使用的库
-c:指明要导出的集合
注意:导入时要在退出mongo命令行状态下执行,导入导出与数据备份和恢复相似

相关文章

  • 001--Mongo DB

    安装: 到MongoDB官网下载安装包或者压缩包:mongodb1.配置环境变量:将mongodb的bin目录配置...

  • db/db小鼠

    db/db小鼠为Leptin receptor基因缺陷鼠。模型简介:Leptin receptor(LEPR)是 ...

  • dB与dB※

    一言以蔽之 是相对值的单位,是绝对值的单位。 dB 是表达两个功率(或者场量)比值关系的单位。功率比的关系为只知道...

  • CC2640R2F学习笔记(12)——修改发射功率

    一、背景 1.1 发射功率范围 (最大)5dB、4dB、3dB、2dB、1dB、(默认)0dB、-3dB、-6dB...

  • mysql新建db、复制db、删除db

    新建数据库,修改类型为utf8 create database abc;use abc;ALTER DATABAS...

  • IOS FMDB新增表结构或者新增表字段

    // 创建数据库 (FMDatabase *)db{if (_db == nil) {_db = [FMDatab...

  • 常用dB相关的解释

    关于dB的所有事 dB,dBm,dBw,dBi,dBFS,dBSPL,dBu,dBV 1.dB 分贝(dB):通常...

  • ChainMaker 数据存储

    带着问题看源码一:区块最终会存在在Block DB、State DB、History DB、Result DB 四...

  • DB

    DRUID连接池的实用 配置详解几个主流的Java连接池整理 MYSQL InnoDB并发插入,居然使用意向锁?I...

  • DB

    {"temps": [{"temperatureNum": 23,"time": "2016-5-15 10:00...

网友评论

      本文标题:001--Mongo DB

      本文链接:https://www.haomeiwen.com/subject/uthbbqtx.html