zoukankan      html  css  js  c++  java
  • 1、MongoDB学习之基本操作

    MongoDB是一种文档型数据库,属于NoSQL数据库,其文档保存方式为JSON格式
    学习目标:
        一、数据库常用命令
        二、集合常用命令
        三、文档操作基本命令
     
    一、数据库常用命令
    MongoDB数据库创建可以直接使用use db,其中db.help()可以看到db里面的很多操作:
    db.auth(username, password)    #表示用来进行验证用户名和密码
    db.createUser(userDocument)    #创建用户
    db.dropDatabase()    #删除db库
    db.version()    #查看db版本
     
    二、集合使用
    > db.colletions.help()
    我常用的的命令有:
    db.colletions.find()    #查询集合里面所有的文档
    db.colletions.count( query = {}, <optional params> )    #查询集合里面所有的文档数量
    db.colletions.createIndexes([keypatterns], <options>)    #创建索引
    db.colletions.insert(obj)    #数据文档
    db.colletions.remove(query)    #删除文档
     
    基本操作:
    1、向集合中插入数据
    > db.c1.insert({name:'jack',age:60})
    WriteResult({ "nInserted" : 1 })
     
    2、循环插入数据
    > for (var i=1;i<1000;i++){
    ... db.c1.insert({name:'user'+i,age:i})
    ... }
    #以上命令就可以循环插入1000条数据了
     
    3、查询集合中所有数据
    > db.c1.find()    #这个命令可以查询集合c1中的所有数据,不过mongodb默认会进行分段显示(因为全部显示出来没有任何意义)
     
    4、查询集合中文档总条数
    > db.c1.count()
    1002
    #可以看出集合里面有1002条数据
     
    5、查询集合里面的文档内容(条件查询)
    > db.c1.find({name:'user78'})    #根据文档列进行查询
    { "_id" : ObjectId("59b2ffae6ab5918117281935"), "name" : "user78", "age" : 78 }
     
    6、查询集合里面的某个文档的列
    > db.c1.find({name:'user75'},{age:1})
    { "_id" : ObjectId("59b2ffae6ab5918117281932"), "age" : 75 }
    #可以看到我查询name值为user75的age列
     
    7、表达式查询文档
    > db.c1.find({age:{$gt:900}},{name:1})
    { "_id" : ObjectId("59b2ffaf6ab5918117281c6c"), "name" : "user901" }
    { "_id" : ObjectId("59b2ffaf6ab5918117281c6d"), "name" : "user902" }
    { "_id" : ObjectId("59b2ffaf6ab5918117281c6e"), "name" : "user903" }
    #可以看出来我现在要查找age大于900的文档列为name的值
    $gt    #表示大于
    $lt    #表示小于
    $gte    #表示大于等于
    $lte    #表示小于等于
    $eq    #表示等于
     
    8、逻辑表达式查询
    > db.c1.find({name:'user501',age:501})
    { "_id" : ObjectId("59b2ffae6ab5918117281adc"), "name" : "user501", "age" : 501 }
    #以上必须同时满足两个条件时才打印对应的结果
     
    9、模糊查询
    > db.c1.find({name:/^jack/})
    { "_id" : ObjectId("59b2fcbb6ab59181172818e7"), "name" : "jack", "age" : 60 }
    #由以上可以看出模糊查询name的首字母是jack的文档
     
    10、排序查询
    > db.c1.find().sort({age:1})
    #按照年龄升序
     
    > db.c1.find().sort({age:-1})
    #按照年龄降序
     
    11、按照limit查询
    > db.c1.find().limit(20)
    { "_id" : ObjectId("59b2fcbb6ab59181172818e7"), "name" : "jack", "age" : 60 }
    { "_id" : ObjectId("59b2fddc0b71c480ad96d78e"), "name" : "test", "age" : 444 }
    #查询前20条数据
     
    12、查询10条以后的数据
    > db.c1.find().skip(10)
    { "_id" : ObjectId("59b2ffae6ab59181172818ef"), "name" : "user8", "age" : 8 }
    { "_id" : ObjectId("59b2ffae6ab59181172818f0"), "name" : "user9", "age" : 9 }
     
    13、分页查询
    > db.c1.find().skip(10).limit(20)
    #查询10条到20条的数据
     
    14、查询某个结果集的记录条数
    > db.c1.find({age:20}).count()
    100
    #以上可以看到age为200的结果集的统计数
     
     
    15、更新集合结果集
    db.collection.update(criteria,objNew,upsert,multi)
    参数说明:
    criteria:用于设置查询条件的对象
    objNew:用于设置更新内容的对象
    upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1
    multi:如果有多个符合条件的记录,是否全部更新,取值为0或1
    注意:默认情况下,之后更新第一个符合条件的记录
    一般情况下后面两个参数分别为0,1
    mongodb更新修饰器
    $set #用来指定一个键并更新键值,若键不存在并创建
    $inc #用来对文档的某个值为数字型进行递增或者递减
     
    15.1根据条件进行update修改操作
    > db.c1.update({name:'test1'},{$set:{age:40}},0,1)
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.c1.find({name:'test1'})
    { "_id" : ObjectId("59b30fd76ab5918117281ccf"), "name" : "test1", "age" : 40 }
    #由上可以看到条件为test1的age列的值修改为40
     
     
    15.2根据条件对结果集age计算
    > db.c1.update({name:'test1'},{$inc:{age:-1}},0,1)
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.c1.find({name:'test1'})
    { "_id" : ObjectId("59b30fd76ab5918117281ccf"), "name" : "test1", "age" : 39 }
    #由上可以看出age减去1之后变成39
     
     
    15.3撤销某个列
    > db.c1.update({name:'test1'},{$unset:{age:1}},0,1)
     #由上可以看出来文档列age被撤销了
     
     
    > db.c1.update({name:'haha'},{$unset:{age:50}},0,1)    #删除对于的值,原理应该是一样的
     
    16、清除文档
    语法:
    db.c1.remove(query)
     
    16.1更加条件删除文档结果集
    > db.c1.remove({name:'haha'})
     
    16.2直接清除整个文档
    > db.c1.remove({})
    WriteResult({ "nRemoved" : 1101 })
    #由上可以看出直接删除完了
     
    总结:mongodb的基础命令还有很多,需要认真的学习语法及用法,多练习。
  • 相关阅读:
    yarn-cli 缓存
    html DOM 的继承关系
    JavaScript basics: 2 ways to get child elements with JavaScript
    svn merge 的区别
    virtualbox 设置windows 于ubuntu虚拟机共享文件夹
    angular 学习理解笔记
    e.which
    痛定思痛
    【转】反思 成长
    日语学习词汇量
  • 原文地址:https://www.cnblogs.com/xiangys0134/p/7496479.html
Copyright © 2011-2022 走看看