mongodb

## 一、MongoDB是什么?
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

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

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

• 2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出

• 2012年05月23日,MongoDB2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强

• 2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库

• 2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强及bug修复

• 2013年08月20日,MongoDB 2.4.6 发布

• 2013年11月01日,MongoDB 2.4.8 发布

• ......

## 三、常用命令与方法
#### 1.数据库(database)命令
• mongo:
    进入交互模式
    
• show  dbs:
    查看所有数据库
    
• use  数据库名:
    创建/切换数据库
    
• db.getName()
或     db:
    查看当前使用的数据库
    
• db.stats():
    查看当前数据库状态
    
• db.dropDatabase():
    删除当前数据库

#### 2.集合(collection)命令
• 创建集合:
    db.createCollection("集合名“)
    
• 查看当前数据库下所有集合:
    db.getCollectionNames() 或 show  collections
    
• 删除集合:
    db.集合名.drop()
    
#### 3.文档(document)命令
##### ※ 文档是对象包裹键值对形式:例:{  name : "Dexter" }
#### ①添加
• save:
    db.集合名.save(  document  )
    
• insert:
    db.集合名.insert( document || [...document] )
    
• insertOne:
    db.集合名.insertOne( document )
    
• insertMany:
    db.集合名.insertMany( document || [...document] )
    
#### ②修改
• save:
    db.集合名.save(  document  )
    
    ※ 会直接覆盖之前的document
    
• update:
    db.集合名.update( query, update, options )
    
        query:查询条件
        update:修改内容
        options:额外选项配置
            upsert:若查询不到时是否增加这条记录,默认false
            multi:是否修改多条,默认false
            
• updateOne:同insertOne

• updateMany:同insertMany

#### ③删除
• remove:
    db.集合名.remove( query, options )
    
            query:查询条件
        options参数:justOne:是否只删除一条,默认false
        
• deleteOne:同insertOne

• deleteMany:同insertMany

#### ④查询
• 查询集合内所有记录:
    db.集合名.find()
    
• 查询age = 22的:
    db.集合名.find( { age :22 } )
    
    以下代码都是写在db.集合名.find(  )中的
    
• age > 22:
    { age: { $gt: 22 } }
    
• age < 22:
    { age: { $lt: 22} }
    
• age >= 22:
    { age: { $gte: 22 } }
    
• age <= 22:
    { age: { $lte: 22 } }
    
• age != 22:
    { age: { $ne: 22 } }
    
• age >= 22 并且 age <= 26:
    { age: { $gte: 22, $lte: 26 } }
    
• name = 张三 并且 age = 20:
    { name: '张三', age: 20 }
    
• 指定name、age:
    {}, { name: 1, age: 1 }
    
• 不要_id:
    {}, { name: 1, age: 1, _id: 0 }
    
• 按age升序:
    db.集合名.find().sort({ age: 1 })
    
• 按age倒序:
    db.集合名.find().sort({ age: -1 })
    
• 查询 5 条记录(限制条数):
    db.集合名.find().limit(5)
    
• 查询 10 条之后的记录(跳过前10条):
    db.集合名.find().skip(10)
    
• 查询 10 条之后的 5 条记录:
    db.集合名.find().skip(10).limit(5)
    
• 查询第一条:
    db.集合名.findOne()
    
• 获取查询结果的个数:
    db.集合名.find().count()

posted @ 2020-04-01 21:27  Dexter-  阅读(89)  评论(0)    收藏  举报