mongodb简介
MongoDB是一个NoSQL数据库,它是跨平台的,基于分布式文件存储的数据库,由C++语言编写的(在Linux下需要安装gcc环境)。MongoDB是以文档的形式存储数据,数据结构由键值(key:value)对组成,类似JSON。
关系型数据库:
mysql sqlserver oracle db2 access
非关系型数据库:
mongodb redis hbase
与mysql的对应:
MySQL 基础概念 | MongoDB 对应概念 |
---|---|
数据库(database) | 容器(database) |
表(table) | 集合(collection) |
行(row) | 文档(document) |
列(column) | 域(filed) |
索引(index) | 索引(index) |
基本操作
显示数据库
show databases
//或
show dbs
例:
添加或切换到数据库
use collection//如果有则切换到该数据库,如果没有则添加数据库并切换到该数据库
例:
删除数据库
use collection
db.dropDatabase()//
例:
创建集合
db.createCollection("集合名")
例:
也可以在添加数据时自动创建集合
db.集合名.insert({"name":"li","age":12})//集合名首字不能为数字,不能为中文
例:
查看集合
show tables
//或
show collections
例:
删除集合
db.集合名.drop()
例:
添加文档
db.集合名.insert()
例:
查看文档
db.集合名.find()
//或者
db.集合名.find().pretty()
例:
db.集合名.findOne()//查看该集合的第一个文档
db.集合名.findOne({key:value})//查看指定键值对的第一个文档
db.集合名.find().count()//查看该集合的文档数量
db.集合名.find().length()//查看该集合的文档数量
条件查找
等于
db.集合名.find({key:"value"})
例:
大于
db.集合名.find({key:{$gt:value}});
例:
小于
db.集合名.find({key:{$lt:value}});
例:
其他查询条件还有:
$gte 大于等于
$lte 小于等于
$ne 不等于
修改文档
db.集合名.update({条件},{修改内容})
//或
db.集合名.update({条件},{$set:{修改内容}})
例:
结果如下:
删除文档
db.集合名.remove({删除条件})//第二个参数为true,只删除一个
//或
db.集合名.deleteOne({删除条件})//删除一个
db.集合名.deleteMany({删除条件})//删除多个
例:
remove({},true)
deleteOne
关闭数据库
guit();