zoukankan      html  css  js  c++  java
  • mongodb

    • 启用服务:Mongod

      需要建立data/db文件夹

    • 链接服务:mongo

      • 查看已有数据库:show dbs
      • 使用数据库:use admin
      • 显示数据库中的集合:show collections
      • 查看数据库版本:db.version()
      • 输出:console.log print(‘巴拉巴拉’)
    • 操作命令

    use user       //进入(建立)一个数据库
    db   //查看当前数据库(user)
    db.info.insert({“name”: “sunjia”})    //新建info集合,并插入文件
    db.info.find()  //查看info集合下的所有文件
    db.info.findOne()  //查询user数据库下info集合里边第一个文件
    db.info.update({“name”:“sunjia”},{“name”:“jiajia”,“age”:“40”})   //修改文件

    db.info.remove({“name”:“sunjia”}) //删除info集合中的文件 db.info.drop() //删除info集合 db.dropDatabase() //删除user数据库

      

    • 批量插入文件(以数组的形式)

    db.test.insert([
        {"_id":1},
        {"_id":2},
        {"_id":3}
    ])
    

    find如何在js文本中使用

    var db = connect("company")  //进行链接对应的集合collections
    var result = db.workmate.find() //声明变量result,并把查询结果赋值给result
    
    result.forEach(function(result){
        printjson(result)
    })
    

      

    find的参数使用方法

    query:查询条件,MongoDB默认的第一个参数。

    fields:返回内容,可以用true和false控制是否显示。

    limit:返回的数量,后边跟数字,控制每次查询返回的结果数量。

    skip:  跳过多少个显示,和limit结合可以实现分页。

    sort:排序方式,正序1,倒序-1。

    db.workmate.find(
        {},
        {name: true, age: true, _id: false}
    ).limit(6).skip(2).sort({age:1})

    find的数组查询

    $in:数组的或查询

    db.workmate.find(
        {interest:{$in:["看电影"]}},    //查询interest数组里边包含‘看电影’的信息
        {name:1,interest:1,age:1,_id:0} 
    )

    也可以

    db.workmate.find(
        {interest:'看电影'},   //{interest:['看电影']},去掉[],否则完全匹配
        {name:1,interest:1,age:1,_id:0} 
    )
    
    db.workmate.find(
        {interest:{$in:["看电影","看书"]}},  //查询interest数组里边包含‘看电影’  ‘看书’ 的信息
        {name:1,interest:1,age:1,_id:0} 
    )
    
    db.workmate.find(
        {interest:{$all:["看电影","看书"]}},   //查询interest数组里边包含 ‘看电影’  ‘看书’的信息
        {name:1,interest:1,age:1,_id:0} 
    )
    

      

      

    $size:数组个数

    db.workmate.find(
        {interest:{$size:5}},  //查询interest数组的数量是5个的信息
        {name:1,interest:1,age:1,_id:0} 
    )
    

     

    $slice:显示数组中前/后几个

    db.workmate.find(
        {},
        {name:1,interest:{$slice:2},age:1,_id:0}    //显示interest数组的前2项
    )
    
    db.workmate.find(
        {},
        {name:1,interest:{$slice:-1},age:1,_id:0}    //显示interest数组的最后一项
    )
    

      

     

     

    find的多条件查询

    $in:一键多值

    db.workmate.find(
      {age:{$in:[25,33]}}, //查询年龄是25或33的信息   {name:1,"skill.skillOne":1,age:1,_id:0} )

    $nin:除了$in条件以外的值

    $or:查询多键值(或者)

    db.workmate.find(
        {$or:[{age:{$gte:30}},{"skill.skillThree":'PHP'}]},
        {name:1,"skill.skillThree":1,age:1,_id:0}
    )
    

    $and:查询多个键值(并且)

    db.workmate.find(
        {$and:[{age:{$gte:30}},{"skill.skillThree":'PHP'}]},
        {name:1,"skill.skillThree":1,age:1,_id:0}
    )
    

      

    查询:find

    db.workmate.find(
        {"skill.skillOne":"HTML+CSS"},   //条件
        {name:true,"skill.skillOne":true,_id:false}   //结果
    )

     不等修饰符

    $lt         //less-than     小于
    $lte        //less-than-equal    小于等于
    $gt         //greater-than      大于
    $gte        //greater-than-equal      大于等于
    $ne         //not-equal     不等于
    
    db.workmate.find(
        {age:{$lte:30,$gte:25}},
        {name:true,age:true,"skill.skillOne":true,_id:false}
    )

     

    db.runCommand()://返回执行结果

    db.runCommand({ping:1})://查看是否和数据库连接成功 

    db.workmate.update({sex:1},{$set:{money:1000}},false,true)
    var resultMessage=db.runCommand({getLastError:1})
    printjson(resultMessage);
    
    //false:upsert的简写
    //true:multi的简写
    //getLastError:1 :表示返回功能错误

      


    findAndModify:

    var myModify={
        findAndModify:"workmate",
        query:{name:'JSPang'},
        update:{$set:{age:18}},
        new:true
    }
    var ResultMessage=db.runCommand(myModify);    
    
    printjson(ResultMessage)  //以json对象的格式输出到控制台
    
    • query:需要查询的条件/文档
    • sort:    进行排序
    • remove:[boolean]是否删除查找到的文档,值填写true,可以删除。
    • new:[boolean]返回更新前的文档还是更新后的文档。
    • fields:需要返回的字段
    • upsert:没有这个值是否增加。

    update修改器

    $set(对已有文件:‘name:MinJie’,的键值进行操作:修改/增加)

    db.workmate.update({"name":"MinJie"},{"$set":{sex:2,age:21}})
    
    修改嵌套数据
    	
    db.workmate.update({"name":"MinJie"},{"$set":{"skill.skillThree":'word'}})
    

    $unset用于将key删除

    db.workmate.update({"name":"MinJie"},{$unset:{"age":''}})
    

    $inc对数字进行计算(必须是数字,字符串不起效果)

    db.workmate.update({"name":"MinJie"},{$inc:{"age":-2}})
    

    multi选项(multiple,多选)

    db.workmate.update({},{$set:{interset:[]}},{multi:true})
    

    upsert选项(如果没有文件,添加文件)

    db.workmate.update({name:'xiaoWang'},{$set:{age:20}},{upsert:true})
    

    update数组修改器

    $push追加数组/内嵌文件({})数据

    db.workmate.update({name:'xiaoWang'},{$push:{interest:'draw'}})
    db.workmate.update({name:'MinJie'},{$push:{"skill.skillFour":'draw'}})
    

    $addToSet 查找数组中数据是否存在,不存在直接push进去,存在不修改

    db.workmate.update({name:"xiaoWang"},{$addToSet:{interest:"readBook"}})
    

    $each 批量追加数组中的数据

    var newInterset=["Sing","Dance","Code"];
    db.workmate.update({name:"xiaoWang"},{$addToSet:{interest:{$each:newInterset}}})
    

    $pop 删除数组值(1:从末端删除一个,-1:从开始删除一个)

    db.workmate.update({name:'xiaoWang'},{$pop:{interest:1}})
    

    数组定位修改

    db.workmate.update({name:'xiaoWang'},{$set:{"interest.2":"Code"}})
    
  • 相关阅读:
    专家视角 | 小荷的 Oracle Database 18c 新特性快速一瞥
    java.lang.ClassCastException: com.xx.User cannot be cast to com.xx.User
    上传单个文件
    极速体验:Oracle 18c 下载和Scalable Sequence新特性
    开工大吉:Oracle 18c已经发布及新特性介绍
    CentOS7编译安装NodeJS
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
  • 原文地址:https://www.cnblogs.com/qq254980080/p/9192498.html
Copyright © 2011-2022 走看看