zoukankan      html  css  js  c++  java
  • MongoDB数据库的基本操作

    介绍

    • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

    • MongoDB中将数据存储为一个文档,文档由键值对(key=>value)组成,MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    基本概念

    • 和关系型数据库一样,MongoDB存在数据库的概念,一个MongoDB可以创建多个数据库。

    • 多个键及其关联的值有序地放置在一起就是文档,文档时MongoDB中数据的基本单元,是MongoDB的核心概念,很类似关系数据库中的行(记录)。

    • 集合就是一组文档的组合,集合可以被看作关系型数据库中的表。

    RDBMS(关系型数据库管理系统) MongoDB
    Database(数据库) Database(数据库)
    Table(表) Collection(集合)
    Record(记录) Document(文档)

    库级操作

    use DATABASE            #切换/创建库        
    show dbs                #查看所有数据库(空库不会显示)
    db.dropDatabase()        #删除当前数据库
    db                        #查看当前所在库

    集合操作

    db.createCollection(name, options)    #创建集合   用引号引起来
    
    show collections                #查看当前数据库的集合
    
    db.集合名称.drop()                #删除集合

    文档操作

    插入

    db.集合名称.insert(document)    
    #插入文档,    集合不存在会自动创建, 不能插入重复id的数
    #_id 是12个字节十六进制数在一个集合的每个文档是唯一的。
    
    db.student.insert({name:'句号'})
    db.student.insert({name:'句号', age:18})
    
    db.student.insert({_id:1, name:'句号', age:18})
    
    
    db.student.insert([
        {name:'juhao', sex:'', age:18},
        {name:'nanbei', sex:'', age:19},
        {name:'budong', sex:'', age:20},
    ])

    查询

    db.集合名称.find()                #查询所有
    db.集合名称.find().pretty()        #结构化显示
    
    db.集合.find({name:10}).pretty()            where name = 10
    db.集合.find({name:{$ne:10} }).pretty()        where name != 10
    db.集合.find({name:{$gt:10} }).pretty()        where name > 10
    db.集合.find({name:{$lt:10} }).pretty()        where name < 10
    #后面加个e就是加等于
        
    
    
    #and逻辑
    {$and:[{expression1}, {expression1}, ...]   }
    #or逻辑
    {$or:[{expression1}, {expression1}, ...]   }
    
    
    #where sex='男' and age > 18
    db.table.find({
        $and:[
            {sex:''}, {age:{$gt:18}}
        ]
    })
    
    
    #where sex='女' or age =18
    db.table.find({
        $or:[
            {sex:''}, {age:18}
        ]
    })

    查询条件

    and条件   {$and:[{expression1},{expression2},{expression3}......]}

    or条件      {$or:[{expression1},{expression2},{expression3}......]}

    and和or的混用       db.table.find({$or:[{$and:[{sex:'女'}, {age:18}]},{$and:[{sex:'男'}, {age:{$gt:18}}]}]})

    操作符 描述
    $ne 不等于
    $gt 大于
    $lt 小于
    $gte 大于等于
    $lte 小于等于

    更新

    db.table.insert({
        name: 'juhao', 
        age: 18,
        height: 180,
        sex:'',
        virtue: ['', '', ''],
    })
    
    db.table.update({sex:''},[{age:20},{height:180}])    
    #更新第一条找到的文档全部值  
    
    db.table.update({sex:''}, {$set:{age:666, agee:6666}}) 
    #修改第一条找到的文档, key不存在就添加
    
    db.table.update({sex:''}, {$set:{sex:''}}, {multi:true})    #更新满足条件的全部数据
    
    
    #前面查询的条件也可以用在这里, wherer sex=男 and age>18
    db.table.update(
        {$and:[{sex:''}, {age:{$gt:18}}]}, 
        {$set:{age:666}},
    )

    删除

    db.集合名称.remove( <query>, <justOne> )
    db.table.remove({age:18})        #删除所有满足条件的
    db.table.remove({sex:''}, {justOne:true})    #删除一条
    
    #where sex='男' and age>18
    db.table.remove({
        $and:[
            {sex:''}, {age:{$gt:18}}
        ]
    })
  • 相关阅读:
    苹果全球营销高级副总裁Phil Schiller曾考虑炒掉长期创意代理商Media Arts Lab
    Amazon Seller Central is Temporarily Unavailable
    三星高管:我们手机卖的好是因为营销成功
    欧洲跨境电商增速将达21% 德国力压群雄
    苹果挖走了亚马逊搜索技术副总裁,或为提升应用商店搜索功能
    亚马逊CEO贝索斯致股东信:阐述公司未来计划
    Amazon.com 购物 信用卡预售期
    佛论婆媳关系
    Focalprice李培亮:梦想让人在我店里排队
    DX孟虎点评新兴市场:巴西俄罗斯火爆背后
  • 原文地址:https://www.cnblogs.com/austinjoe/p/9614944.html
Copyright © 2011-2022 走看看